在Java Web开发中,基于SSM架构的项目很多,因此掌握如何快速整合SSM的流程和框架需要做哪些准备配置,对于java的学习是至关重要的。在这里潘老师以图文教程的方式给大家详解下在Eclipse中具体的搭建步骤,如果你觉得此流程搭建太复杂,在文章最后潘老师会提供已经搭建好的项目供你下载。
1、准备好JDK环境
2、准备好JavaEE版本的Eclispe环境
3、准备好mysql数据库(我这里是mysql5.5版本,如果你的是8.0版本注意驱动包和驱动都要改为与8.0版本对应的)
4、下载好Spring、SpringMVC和Mybatis的相关jar包以及一些辅助jar包。
4.1)下载Spring和SpringMVC的框架包,在这里我们使用的版本为4.3.18(可以根据自己的需要按照如图目录下载自己的需要的版本,如果你选的版本与我演示的不同,注意和mybatis版本兼容性问题)。官网下载地址:点击直达
4.2)下载mybati框架包,这里我们使用3.5.1版本,官网github下载地址:点击直达
4.3)准备其他辅助包,后面会具体说到。
1、在eclipse中新建名为ssm的java web项目。
2、将下面相关包复制到ssm的lib目录下:
2.1)IOC相关包

2.2)AOP相关包

2.3)数据库及事务相关包

2.4)SpringMVC相关包

2.5)mybatis核心包

2.6)mysql数据库驱动包(如果是mysql8.0版本,驱动包可以使用
mysql-connector-java-8.0.11.jar
)
2.7)c3p0数据库连接池包

2.8)Spring和mybatis的整合包

SSM整合所需所有jar包综合如下:

3、为了方便后面扫描配置及环境测试,在src根目录下创建包目录如下:

4、在src下新建名为
log4j.properties
日志信息配置文件,内容如下:
log4j.rootLogger=DEBUG,Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #log4j.logger.org.apache=INFO
5、在src下新建名为jdbc.properties
数据库信息配置文件,内容如下:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8 jdbc.username=root jdbc.password=123456
如果是mysql8.0版本,则配置为:
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 jdbc.username=root jdbc.password=123456
6、在src下新建名为spring.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"> <!-- 配置包扫描 --> <context:component-scan base-package="com.ssm.service,com.ssm.dao"/> <!-- 配置注解驱动 --> <context:annotation-config/> <!-- 加载jdbc.properties --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置数据源-c3p0数据库连接池 --> <bean id="dataSource" 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> <property name="minPoolSize" value="10"></property> <property name="maxPoolSize" value="50"></property> <property name="initialPoolSize" value="10"></property> </bean> <!-- 配置SqlSessionFactory-mybatis操作数据库核心对象的工厂 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 注入mybatis的核心配置文件 --> <property name="configLocation" value="classpath:mybatis.cfg.xml"></property> </bean> <!-- 配置Mapper扫描器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 注入扫描mapper的包路径 --> <property name="basePackage" value="com.ssm.dao"></property> <!-- 注入sqlSessionFactoryBeanName --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 配置事务-使用jdbc的事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 开启spring对事务注解支持 --> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
6、在src下新建名为springmvc.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:mvc="http://www.springframework.org/schema/mvc" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 开启包扫描注解: springmvc.xml中只对controller做扫描 --> <context:component-scan base-package="com.ssm.controller"/> <!-- springmvc注解驱动 --> <mvc:annotation-driven/> <!-- 配置视图解析的前缀 prefix 和后缀 suffix: (1)前缀:如果在 WebContent 目录下,则为 /,如果在 WEB-INF 目录下,则为 /WEB-INF/ (2)后缀:一般为 JSP 文件,所以为 .jsp 例如:prefix="/",suffix=".jsp",viewname="test",则:"/test.jsp" --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
7、在src下新建名为mybatis.cfg.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> <settings> <!-- 开启日志,并指定具体日志为log4j --> <setting name="logImpl" value="LOG4J"/> <!-- 开启延迟加载 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 设置属性按需加载 --> <setting name="aggressiveLazyLoading" value="false"/> </settings> <typeAliases> <!--自动扫描,将JAVA类的类名作为类的类别名 --> <package name="com.ssm.model"/> </typeAliases> <mappers> <!-- 自动扫描包内的Mapper接口与配置文件 --> <package name="com/ssm/dao"/> </mappers> </configuration>
8、修改web.xml配置,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>ssm</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> <!-- 1.配置spring的监听器,项目一加载就创建容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 2.指定配置文件路径,如果不指定,就默认调用WEB-INF下的applicationContext.xml文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <!-- 3.配置spring的编码过滤器 --> <filter> <filter-name>characterEncoding</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>characterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 4.配置 SpringMVC 的核心分发器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 设置 SpringMVC 核心配置文件的名称和位置,均可任意。如果未设置,则默认 位于 WEB-INF 目录下,名称为 [servlet-name]-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!-- 自动加载:随 Tomcat 容器启动,加载 DispatcherServlet,完成初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
1、在mysql中新建ssm库,并创建user表。
2、在model包中创建User.java实体类,代码如下:
package com.ssm.model; public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、controller包中新建UserController.java,代码如下:
package com.ssm.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.ssm.model.User; import com.ssm.service.UserService; @Controller public class UserController { @Autowired private UserService us; @RequestMapping("/saveUserPage") public String saveUserPage() { return "saveUser"; } @RequestMapping("/saveUser") public String saveUser(User user) { us.saveUser(user); return "success"; } }
4、service包中新建UserService.java,代码如下:
package com.ssm.service; import com.ssm.model.User; public interface UserService { public void saveUser(User user); }
5、service.impl包中新建UserServiceImpl.java,代码如下:
package com.ssm.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.ssm.dao.UserDao; import com.ssm.model.User; import com.ssm.service.UserService; @Service("userService") @Transactional(propagation=Propagation.REQUIRED,readOnly=false) public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public void saveUser(User user) { System.out.println("UserServiceImpl...saveUser..."); userDao.saveUser(user); //int k = 1/0;//模拟异常,测试事务 } }
6、dao包中新建UserDao.java和UserDao.xml。
UserDao.java代码:
package com.ssm.dao; import org.springframework.stereotype.Repository; import com.ssm.model.User; @Repository("userDao") public interface UserDao { public void saveUser(User user); }
UserDao.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.ssm.dao.UserDao"> <!-- 保存 --> <insert id="saveUser" parameterType="user"> insert into user (name) values (#{name}) </insert> </mapper>
7.在WEB-INF下新建views目录,在views下新建saveUser.jsp和success.jsp。
saveUser.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> <form action="saveUser" method="post"> 用户名:<input type="text" name="name" value=""/><br/> <input type="submit" value="添加"/> </form> </body>
success.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> 添加成功。。。。 </body> </html>
8、部署运行项目,浏览器访问localhost:8080/ssm/saveUserPage
跳转到添加用户页面,然后输入信息,点击添加,查看数据库是否正常添加,页面是否正常跳转至sucess.jsp。接着在UserServiceImpl中放开模拟异常代码,再次添加用户,查看数据库是否没有数据,如果没有表明事务机制正常。
下载好的源码直接解压导入到eclipse,如果报错,则检查buildpath的jdk是否匹配以及Apache Tomcat相关包是否有。
百度网盘下载
提取码: