在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.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"?--> <!-- 配置包扫描 --> <!-- 配置注解驱动 --> <!-- 加载jdbc.properties --> <!-- 配置数据源-c3p0数据库连接池 --> <!-- 配置SqlSessionFactory-mybatis操作数据库核心对象的工厂 --> <!-- 注入数据源 --> <!-- 注入mybatis的核心配置文件 --> <!-- 配置Mapper扫描器 --> <!-- 注入扫描mapper的包路径 --> <!-- 注入sqlSessionFactoryBeanName --> <!-- 配置事务-使用jdbc的事务 --> <!-- 开启spring对事务注解支持 -->
6、在src下新建名为springmvc.xml
的文件,内容如下:
<!--?xml version="1.0" encoding="UTF-8"?--> <!-- 开启包扫描注解: springmvc.xml中只对controller做扫描 --> <!-- springmvc注解驱动 --> <!-- 配置视图解析的前缀 prefix 和后缀 suffix: (1)前缀:如果在 WebContent 目录下,则为 /,如果在 WEB-INF 目录下,则为 /WEB-INF/ (2)后缀:一般为 JSP 文件,所以为 .jsp 例如:prefix="/",suffix=".jsp",viewname="test",则:"/test.jsp" -->
7、在src下新建名为mybatis.cfg.xml
的文件,内容如下:
<!--?xml version="1.0" encoding="UTF-8"?--> <!-- 开启日志,并指定具体日志为log4j --> <!-- 开启延迟加载 --> <!-- 设置属性按需加载 --> <!--自动扫描,将JAVA类的类名作为类的类别名 --> <!-- 自动扫描包内的Mapper接口与配置文件 -->
8、修改web.xml配置,内容如下:
<!--?xml version="1.0" encoding="UTF-8"?--> ssm index.html index.htm index.jsp default.html default.htm default.jsp <!-- 1.配置spring的监听器,项目一加载就创建容器 --> org.springframework.web.context.ContextLoaderListener <!-- 2.指定配置文件路径,如果不指定,就默认调用WEB-INF下的applicationContext.xml文件 --> contextConfigLocation classpath:spring.xml <!-- 3.配置spring的编码过滤器 --> characterEncoding org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 characterEncoding /* <!-- 4.配置 SpringMVC 的核心分发器--> springmvc org.springframework.web.servlet.DispatcherServlet <!-- 设置 SpringMVC 核心配置文件的名称和位置,均可任意。如果未设置,则默认 位于 WEB-INF 目录下,名称为 [servlet-name]-servlet.xml --> contextConfigLocation classpath:springmvc.xml <!-- 自动加载:随 Tomcat 容器启动,加载 DispatcherServlet,完成初始化 --> 1 springmvc /
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"?--> <!-- 保存 --> insert into user (name) values (#{name})
7.在WEB-INF下新建views目录,在views下新建saveUser.jsp和success.jsp。
saveUser.jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
success.jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 添加成功。。。。
8、部署运行项目,浏览器访问localhost:8080/ssm/saveUserPage
跳转到添加用户页面,然后输入信息,点击添加,查看数据库是否正常添加,页面是否正常跳转至sucess.jsp。接着在UserServiceImpl中放开模拟异常代码,再次添加用户,查看数据库是否没有数据,如果没有表明事务机制正常。
下载好的源码直接解压导入到eclipse,如果报错,则检查buildpath的jdk是否匹配以及Apache Tomcat相关包是否有。