用maven对ssm进行整合
网上有很多ssm整合的教程,这里给像我这样的初学的新手提供一个整合方法,同时也记录一下自己的学习进度。
同时推荐观看相关视频 https://www.bilibili.com/video/av53621216/ 推荐老师讲的spring和springMVC这两个框架的整合贼棒!(1p—6p),spring和mabatis的话在找找资料看看,感觉我这个写的太乱了(/苦恼)
数据库相关:因为是测试整合的,所以数据库设计特别简单:
数据库名:blog;表名:user;
表中数据:
1.创建maven项目
2.初始项目结构:
3.在创建的初始目录结构中:src/main/java这个是放置java文件,而src/main/resources放置配置文件。
在pom.xml中引入jar包坐标:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2 <modelVersion>4.0.0</modelVersion>
3 <groupId>com.hhxy</groupId>
4 <artifactId>blog</artifactId>
5 <version>0.0.1-SNAPSHOT</version>
6 <packaging>war</packaging>
7
8
9 <properties>
10 <spring.version>5.0.2.RELEASE</spring.version>
11 <slf4j.version>1.6.6</slf4j.version>
12 <log4j.version>1.2.12</log4j.version>
13 <mysql.version>5.1.6</mysql.version>
14 <mybatis.version>3.4.5</mybatis.version>
15 </properties>
16
17 <dependencies>
18
19 <!-- spring -->
20 <dependency>
21 <groupId>org.aspectj</groupId>
22 <artifactId>aspectjweaver</artifactId>
23 <version>1.6.8</version>
24 </dependency>
25
26 <dependency>
27 <groupId>org.springframework</groupId>
28 <artifactId>spring-aop</artifactId>
29 <version>${spring.version}</version>
30 </dependency>
31
32 <dependency>
33 <groupId>org.springframework</groupId>
34 <artifactId>spring-context</artifactId>
35 <version>${spring.version}</version>
36 </dependency>
37
38
39 <dependency>
40 <groupId>org.springframework</groupId>
41 <artifactId>spring-web</artifactId>
42 <version>${spring.version}</version>
43 </dependency>
44
45 <dependency>
46 <groupId>org.springframework</groupId>
47 <artifactId>spring-webmvc</artifactId>
48 <version>${spring.version}</version>
49 </dependency>
50
51 <dependency>
52 <groupId>org.springframework</groupId>
53 <artifactId>spring-test</artifactId>
54 <version>${spring.version}</version>
55 </dependency>
56
57 <dependency>
58 <groupId>org.springframework</groupId>
59 <artifactId>spring-tx</artifactId>
60 <version>${spring.version}</version>
61 </dependency>
62
63 <dependency>
64 <groupId>org.springframework</groupId>
65 <artifactId>spring-jdbc</artifactId>
66 <version>${spring.version}</version>
67 </dependency>
68
69 <dependency>
70 <groupId>junit</groupId>
71 <artifactId>junit</artifactId>
72 <version>4.12</version>
73 <scope>compile</scope>
74 </dependency>
75
76 <dependency>
77 <groupId>mysql</groupId>
78 <artifactId>mysql-connector-java</artifactId>
79 <version>${mysql.version}</version>
80 </dependency>
81
82 <dependency>
83 <groupId>javax.servlet</groupId>
84 <artifactId>servlet-api</artifactId>
85 <version>2.5</version>
86 <scope>provided</scope>
87 </dependency>
88
89 <dependency>
90 <groupId>javax.servlet.jsp</groupId>
91 <artifactId>jsp-api</artifactId>
92 <version>2.0</version>
93 <scope>provided</scope>
94 </dependency>
95
96 <dependency>
97 <groupId>jstl</groupId>
98 <artifactId>jstl</artifactId>
99 <version>1.2</version>
100 </dependency>
101
102 <!-- log start -->
103 <dependency>
104 <groupId>log4j</groupId>
105 <artifactId>log4j</artifactId>
106 <version>${log4j.version}</version>
107 </dependency>
108
109 <dependency>
110 <groupId>org.slf4j</groupId>
111 <artifactId>slf4j-api</artifactId>
112 <version>${slf4j.version}</version>
113 </dependency>
114
115 <dependency>
116 <groupId>org.slf4j</groupId>
117 <artifactId>slf4j-log4j12</artifactId>
118 <version>${slf4j.version}</version>
119 </dependency>
120 <!-- log end -->
121 <dependency>
122 <groupId>org.mybatis</groupId>
123 <artifactId>mybatis</artifactId>
124 <version>${mybatis.version}</version>
125 </dependency>
126
127 <dependency>
128 <groupId>org.mybatis</groupId>
129 <artifactId>mybatis-spring</artifactId>
130 <version>1.3.0</version>
131 </dependency>
132
133 <dependency>
134 <groupId>c3p0</groupId>
135 <artifactId>c3p0</artifactId>
136 <version>0.9.1.2</version>
137 <type>jar</type>
138 <scope>compile</scope>
139 </dependency>
140
141 </dependencies>
142 <build>
143 <finalName>ssm</finalName>
144 <pluginManagement>
145 <plugins>
146 <plugin>
147 <groupId>org.apache.maven.plugins</groupId>
148 <artifactId>maven-compiler-plugin</artifactId>
149 <version>3.2</version>
150 <configuration>
151 <source>1.8</source>
152 <target>1.8</target>
153 <encoding>UTF-8</encoding>
154 <showWarnings>true</showWarnings>
155 </configuration>
156 </plugin>
157 </plugins>
158 </pluginManagement>
159 </build>
160
161 </project>
4.创建好项目后,在src/main/java中创建包:如图所示:
5.根据数据库设计实体类,同时在控制层、mapper层、service层创建相应的类。如图:
、
6.开始的准备步骤准备完毕,接下来开始整合。
ssm整合是spring+springMVC+mybatis这三个框架进行整合,是要拿spring框架对springMVC和mybatis进行整合。
7.下面对三个框架进行整合:
创建applicationContext.xml:
相关代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- =============开启注解扫描Spring中只需要扫描service和mapper============ -->
<context:component-scan base-package="com.hhxy.plx" >
<!--配置哪些注解不扫描exclude 是不处理的-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> <!-- ==========================读取jdbc工具类==================================== -->
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean> <!--==============================配置和MyBatis的整合====================== -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定mybatis全局配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="dataSource" ref="pooledDataSource"></property>
<!-- 指定mybatis,mapper文件的位置 -->
<property name="mapperLocations" value="classpath*:com/hhxy/plx/mapper/*.xml"></property>
</bean> <!-- ======================配置扫描器,将mybatis接口的实现加入到ioc容器中=========-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--扫描所有mapper接口的实现,加入到ioc容器中 -->
<property name="basePackage" value="com.hhxy.plx.mapper"></property>
</bean> </beans>
8.创建springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启注解扫描 只扫描Controller -->
<context:component-scan base-package="com.hhxy.plx">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!--配置的视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean> <!--过滤静态资源-->
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/js/" mapping="/js/**" /> <!--开启SpringMVC注解的支持-->
<mvc:annotation-driven/> </beans>
9.创建mybatis-config.xml 这个可以不用写东西,但是它一定要有。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> </configuration>
10.创建log4j.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
11.web.xml相关配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>blog</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!-- Spring 整合 Springweb配置Spring监听器 -->
<!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--设置配置文件的路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name/>
<param-value/>
</context-param> <!-- 此部分为springMVC的配置 --> <!--配置前端控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载springmvc.xml配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--启动服务器,创建该servlet-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!--解决中文乱码的过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>
12.上面就是所有配置文件。
UserController:
package com.hhxy.plx.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.hhxy.plx.entity.User;
import com.hhxy.plx.service.UserService; @Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String findAll() {
System.out.println("Controller执行成功!!");
userService.findAll();
return "login"; }
@RequestMapping("/save")
public String save(User user) {
userService.saveUser(user);
return "login"; } }
User实体类:
package com.hhxy.plx.entity; public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }
UserMapper接口类:
package com.hhxy.plx.mapper; import com.hhxy.plx.entity.User; public interface UserMapper { void saveUser(User user); }
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hhxy.plx.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.hhxy.plx.mapper.UserMapper">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="password" jdbcType="VARCHAR" property="password" /> </resultMap>
<select id="findAll" parameterType="com.hhxy.plx.entity.User" resultMap="BaseResultMap">
select * from user
</select>
<insert id="saveUser" parameterType="com.hhxy.plx.entity.User"> insert into user(username,password) values (#{username},#{password})
</insert> </mapper>
UserService接口类:
package com.hhxy.plx.service; import java.util.List; import com.hhxy.plx.entity.User; public interface UserService { public List<User> findAll(); public void saveUser(User user); }
UserServiceImpl实现类:
package com.hhxy.plx.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.hhxy.plx.entity.User;
import com.hhxy.plx.mapper.UserMapper;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper; public List<User> findAll(){
System.out.println("ServiceImpl调用成功!!!!");
return null; } @Override
public void saveUser(User user) {
System.out.println("保存用户!!!");
userMapper.saveUser(user); } }
index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<a href="user/login">测试跳转</a>
<form action="user/save" method="post">
账号:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/> <input type="submit" value="保存"> </form> </body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
login页面 </body>
</html>
测试:
输入要保存的账号密码:跳转保存。
刷新数据库:
用maven对ssm进行整合的更多相关文章
- 基于maven的ssm框架整合
基于maven的ssm框架整合 第一步:通过maven建立一个web项目. 第二步:pom文件导入jar包 (1 ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
- MyEclipse的多模块Maven web(ssm框架整合)
Maven的多模块可以让项目结构更明确,提高功能的内聚,降低项目的耦合度,真正的体现出分层这一概念. 我们在操作中,要明白为什么这样做,要了解到更深的层次,这样,我们就不限于个别软件了. 话不多说,直 ...
- IDEA使用maven搭建SSM框架整合项目(超级详细,值得一看)
目录 温馨提示 简单介绍下SSM 搭建过程 一.框架介绍 二.下载Maven 三.创建Maven项目 四.Maven工程需要引入的Jar 包 五.整合SSM框架.需要的相关配置文件配置项目 六.工程导 ...
- maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis
首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...
- 使用Maven完成SSM框架整合环境构建——基于Spring4和Mybatis3
只言片语 使用Maven来搭建一个SSM环境,其实和使用手工倒入jar的过程没有多大区别,所用的jar包都是一样的,但是区别在与不用你手动导入jar包了,而是只修改pom.xml,maven会自动根据 ...
- SSM框架整合环境构建——基于Spring4和Mybatis3
目录 环境 配置说明 所需jar包 配置db.properties 配置log4j.properties 配置spring.xml 配置mybatis-spring.xml 配置springmvc.x ...
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
随机推荐
- 多线程学习三:Thread API,ThreadLocal,synchronized,volatile和Condition
一.Thread API: setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 首先要了解什么是Thread. ...
- Costco
1 会员制,并不是Costco成功的关键原因 Costco最早开始推行会员制的时候,其实遭遇了巨大的失败. 人们当时是不接受,也不理解会员制度的,没有多少人来办会员,Costco差点就死掉了. 那Co ...
- CentOS7破解root密码
第一步: reboot重启系统,进入修改密码步骤,出现此界面后,按e进行编辑 2.找到linux16这一段中的 ro crashkernel=xxx, 将 ro 改成rw init=/sysroot ...
- mysql简单的sql操作语句
一,常用.简单的SQL操作语句 1.数据库操作: 1)创建数据库: create database database_name: 创建并设置字符编码 create database database_ ...
- __rpm.so: underfined symbol : rpmpkgverifySigs 故障分析
前言: 近期漏洞修复频繁,各种组件需要升级,经多次碰撞,发现 yum update 来升级组件是最有效最安全的方式(绿盟通过版本比对的扫描结果可以忽略). 然而,各家的设备各家管,一到升级就发现一堆问 ...
- DRF视图功能介绍(2)
本帖最后由 杰哥,我就服你 于 2018-12-20 13:22 编辑 Django rest framework(DRF) D:是一个用于构建Web API强大又灵活的框架,基于Django框架二次 ...
- LeetCode 动态规划
动态规划:适用于子问题不是独立的情况,也就是各子问题包含子子问题,若用分治算法,则会做很多不必要的工作,重复的求解子问题,动态规划对每个子子问题,只求解一次将其结果保存在一张表中,从而避免重复计算. ...
- session:
内容回顾: 多对多 class Pulisher(models.Model): name = models.CharField(max_length=32) class Book(models ...
- testNG xml文件详解
网上看到一篇整理的非常详细的xml文件详解,分享一下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 < ...
- 第九周周五计划&&周四总结
今天主要将提取地主题词入库以及重新对新闻分类. 测试了一下单纯使用主题词作为主题追踪依据不是很好,明天尝试使用特征值提取(主题词(名词实体))+摘要比对综合.但是目前还没想好是每篇新闻的都要追踪还是热 ...