Java Spring 整合 mybatis + springmvc
要求: 以下内容需要有javaEE spring springmvc 和mybatis mysql数据库 等知识点的学习基础
1:搭建整合环境
1 整合说明:SSM整合可以使用多种方式 本次我们使用XML+注解的方式
2: 整合的思路:
1: 先搭建整合的环境
2: 先把spring的配置搭建完成
3: 再使用spring整合SpringMVC框架
4: 最后使用Spring整合Mybatis框架

首先创建数据库 (本次使用MySQL数据库)

第二步 创建项目 导入pom文件

接着起一个项目名(随意看自己心情)

选择好自己的maven配置信息所在目录 和仓库地址 然后 将 下面的name 和value添加到下方(可以减少大量依赖导入的时间)

(Name: archetypeCatalog
Value: internal)
然后导入pom文件
我的pom如下:
<!--ssm整合maven-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.19.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.2.RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- C3P0jar包-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jdom/jdom -->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<!--jsr 303数据效验三个包-->
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.10.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
<!--上传文件三个包-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<!--生成随机数-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.5.0</version>
</dependency>
<!--json对象-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--FreeMarkerViewResolver视图解析器需要下面两包-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
<scope>provided</scope>
</dependency>
<!-- 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
第三步: 创建java文件夹和 resources文件夹 并在java文件夹中创建好domain dao service和controller四个文件夹三层架构和javabean

第四步 创建accout类(数据库的关联类)

第五步: 创建 dao持久层的接口 提供两个方法 查询所有和 保存单个账户

第六步: 由于使用了mybatis框架 所以无需自己写dao层的实现类 所以 直接写service层的接口即可

第七步; 创建Service层实现类 按照标准三层架构写在impl子包下 (此时的mybatis未配置 暂时以sout代替)

第八步 创建web层控制类:

下面进行Spring环境的搭建和配置
使用注解的方式将所有的bean使用SpringIOC 的方式 进行实现 所以要创建一个spring的配置文件 开启包的扫描
第九步: 在resource文件夹下创建spring的配置文件
起名规范
applicationContext.xml 将配置文件的约束补充完整(一般为固定格式可直接粘贴) 并且开启注解扫描命令<context:compoment scan> 由于controller类不需要spring进行扫描所以 在此标签内 配置controller注解不扫描(固定格式直接粘贴即可)

第十步:将service实现类加入IOC注解 并测试Spring模块是否可用


发现此时出现了log4j的警告信息 提示没有log4j的配置文件 此时可以直接导入一个到resource文件夹即可

接下来进行springmvc框架的整合:
十一步: 在web.xml中配置springmvc的前端控制器和中文过滤器
创建springmvc.xml文件 导入头文件信息并开启注解扫描(只扫描controller包) 配置视图解析器 和 注解支持(mvc)

配置完成之后 进行测试:



接下来使用spring来整合springmvc
整合原理:

第十二步:在web.xml中配置spring的监听器:
(由于此监听器默认只加载WEB-INF目录下的applicationcontext.xml配置文件 因此需要额外做一些参数的配置)

接着进行测试: 在controller类中 书写添加service接口对象 使用IOC 依赖注入 测试方法

测试结果:

接着进行mybatis框架的整合(注解方式整合):
第十三步: 在dao层接口上 使用注解进行sql语句的配置(select注解,Insert注解)

第十四步: 建立mybatis的根配置文件SqlMapConfig.xml (基本固定格式)

接着进行测试:(Test包下的mybatistest类中测试)

测试结果:

再测试一下save方法(由于还没写spring事务控制 所以需要手动提交事务)

接下来使用spring来对mybatis进行整合:
思路:将mybatis 为DAO生成的代理对象 存到Spring的IOC中 (因为service实现类已经存入了Spring的IOC)
Spring整合mybatis框架
在spring的配置文件applicationcontext.xml中配置
步骤1: 配置连接池 (配置C3P0连接池 bean标签)(这里的c3p0是最简单的配置!)

步骤2: 配置SqlSessionFactory工厂(bean标签配置 并配置依赖DataSource 引入c3p0连接池的DataSource对象即可)

步骤3: 配置DAO接口所在的包 (bean标签 配置依赖 basePackage dao接口包名)

此时呢SqlmapConfig.xml文件就没有了他的价值 可以直接删除 因为mybatis的所有工作都已经交给了spring框架解决
最后在dao层接口上加上注解@repository 交给spring容器管理

接着在Service层实现类中注入 dao层接口 并使用注解注入 接着将方法实现即可

最后进行一个测试 前台调用 查询所有方法 后台获取数据 发送给 新页面进行数据的显示
前台:

后台:(控制类)

返回页面:(使用了jstl表达式 后期会出一篇博客专门讲讲jstl)

最后 由于save方法目前由于无法自动提交事务 无法测试
因此
最后一步: 配置spring整合mybatis框架的事务管理 配置Spring框架声明式事务管理
1; 配置事务管理器(在applicationconfig.xml中)

2 配置事务通知

3:配置AOP增强

接着进行最后的测试:
前台:

后台:

到这里: SSM的整合就全部结束了 接下来我们总结一下步骤:
SSM 整合 顺序
配置spring -> 测试spring -> 配置springmvc ->测试springmvc -> spring整合springmvc -> 配置mybatis -> 测试mybatis ->spring整合mybatis -> 整合mybatis的事务控制 ->总测试
最后给大家的小建议: 业精于勤荒于嬉 只有多练习才能过目而不忘。
本文详细介绍了如何使用XML+注解的方式整合Java Spring、Mybatis和SpringMVC。从创建数据库、项目搭建到配置各个组件,包括数据库连接池、Service层、DAO层、Controller层,以及Spring的事务管理。通过一步步的指导,帮助读者掌握SSM框架的整合技巧。

736

被折叠的 条评论
为什么被折叠?



