1、背景
前阵子恶补了Spring、SpringMVC和MyBatis的相关知识,对这三部分有了一定的理解,下面以一个小型项目,学习SSM的整合。
该项目是一个用户管理系统,涉及对用户(包括ID、用户名、密码)的增删改查。系统的前端使用JSP。(后端逻辑简单,前端界面简陋)
源代码地址:https://gitee.com/linda_gitee/ssm_management.git。克隆后如果要部署,需要修改src/resource/db.properties
。建议边看源代码边看文章。
需要准备提前安装IDEA、Maven、Tomcat和MySQL。
2、准备
- 在MySQL中创建数据库
ssm_db
,新建users
表,字段包括id
,name
,password
; - 通过IDEA新建一个Maven空项目;
- 在pojo包下,编写
User
实体类,与数据库字段进行对应; - Maven项目中导入Junit单元测试依赖。
3、Spring和MyBatis的整合
3.1、导入依赖
- MyBatis相关(mysql驱动、mybatis)
- Spring相关(spring-webmvc、spring-jdbc)
- 整合模块(mybatis-spring)
3.2、业务代码
在源代码的Mapper目录下编写Mapper接口,在Resources的Mapper目录下编写映射文件,两者目录要一致,这样Maven打包就可以把两个文件打包在同一目录下了。
3.3、将MyBatis使用过程中需要创建的对象SqlSessionFactory交由Spring容器管理(通过XML配置)
在resources目录下,
- 新建
db.properties
,写数据库的相关配置(驱动、url、用户名、密码); - 新建
applicationContext.xml
作为整个SSM项目的配置文件,在里面通过import
标签导入Spring整合MyBatis的配置文件spring-dao.xml
; - 原先使用MyBatis需要手动创建对象,但是Spring的一大特点就是能使得我们不用手动创建对象,我们只需要在
spring-dao.xml
中进行配置即可,包括数据源和sqlSessionFactory
,需要引用db.properties
的数据库配置; - 创建
sqlSessionFactory
需要绑定MyBatis核心配置文件,所以再新建配置文件mybatis-config.xml
,可以在这个配置文件中配置MyBatis的设置项、别名以及注册Mapper(理论上这些都可以在spring-dao.xml
中配置,但是这样结构会比较清晰)。
3.4、将映射器注册到Spring容器中
这里使用到的方法上是在spring-dao.xml
中配置MapperScannerConfigurer
进行扫描,这样就不用手动地注入了。
3.5、Service层
以上做的工作都在Dao层,Service层可以写很多逻辑,但是这个项目比较简单,直接调用Dao层方法即可。然后,新建spring-service.xml
注册Service对象,在applicationContext.xml
中导入spring-service.xml
。
3.6、测试
在Junit中,通过Spring上下文获取到Service对象,测试增删查改