spring boot mybatis 整合_Spring、MyBatis和SpringMVC的整合
SSM框架整合的知识。
不用maven,为什么呢?主要是帮助更好的理解有哪些包,这样更加透彻。当然了,使用maven会更方便一点。
1 jar包管理
2 整合思路
spring在进行管理时,是很有条理的,每个层都由spring管理,然后不同的层可以调用其它层,Handler调用service,service调用mapper等。根据这个架构,我们来总结一下整合的思路,根据这个调用关系,我们可以从下往上一步步整合。
1. 整合dao层。mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口在spring中进行注册。2. 整合service层。通过spring管理 service接口。使用配置方式将service接口配置在spring配置文件中。实现事务控制。3. 整合springmvc。由于springmvc是spring的模块,不需要整合。
现在思路清晰了,接下来就开始整合了。在整合前先看一下我整合完的工程结构。
3 整合dao层
整合dao层也就是整合持久层,那么需要spring的核心包,持久层包,mybatis包,数据库以及连接池的包。所以将spring-persistence/spring-core/mysql-connector/mybatis/dbcp几个文件夹中的jar包拷贝到lib中。
mybatis全局配置文件
可以看出,整合的时候,这个全局配置文件已经很清爽了,基本没啥东东了,因为数据源啊、mapper啊啥的都交给spring去管理了。
配置Spring配置文件
配置完了mybatis的全局配置文件后,接下来就要配置spring的配置文件了,spring的配置文件我将分类写在不同的文件中,都放在config/spring/目录下了,这里是对dao的整合,所以起名applicationContext-dao.xml。
可以看出,整合dao层的时候主要配置一下数据源、sqlSessionFactory和mapper扫描器,这样的话,数据源,sqlSessionFactory和mapper在tomcat启动时就被spring实例化到了容器中。接下来就是准备po类及mapper了。
逆向工程生成po和mapper,使用逆向工程生成的代码如下:
4 整合Service层
之前提到过,service是用来调用mapper的,mapper是用来操作数据库的,其实上面的小插曲中的测试代码就有点类似service层做的事,先获取mapper接口的代理对象,然后操作数据库。
所以在service层,我们首先要获取mapper接口的代理对象,只不过在这里我们通过spring注入进来,然后通过这个代理对象去操作数据库。下面看一下整个整合的步骤:
先写Service接口
可以看出,这个接口和上面那个mapper接口其实是一样的,当然并不是说一定一样,只不过这里要实现的逻辑都一样而已。
Service实现类
可以看出,实现类中是通过@Autowired注入itemsMapperCustom,这个itemsMapperCustom是上面那个插曲中定义的一个mapper。
它会通过spring配的扫描器扫描到,并将对象装到spring容器中,然后在这注入进来,然后调用findItemsList方法来操作数据库。至于itemQueyVo,实际中,是将前台传来的数据封装进来,然后传进来的。这样就打通了service与dao之间的通道了。
配置applicationContext-service.xml
配置applicationContext-transaction.xml
5 整合springmvc
配置前端控制器
配置处理器映射器、处理器适配器和视图解析器
加载spring容器
在web.xml中添加spring容器监听器,加载spring容器。
关于SSM框架的整合,你会多少?欢迎在留言区评论!
spring boot mybatis 整合_Spring、MyBatis和SpringMVC的整合相关推荐
- Spring Boot基础学习笔记13:路径扫描整合Servlet三大组件
文章目录 零.学习目标 一.创建Spring Boot项目 - IntegrateThreeComponents02 二.使用路径扫描方式整合Servlet三大组件 (一)创建MyServlet类 ( ...
- spring mvc mysql 实例_Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
一.准备工作 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` ch ...
- Spring Boot2.x-10 基于Spring Boot 2.1.2 + Mybatis 2.0.0实现多数据源,支持事务
文章目录 概述 思路 步骤 Step1 多数据源配置文件applicaiton.yml Step2 初始化多个数据源 Step3 配置多个数据源 验证测试 支持事务 Step1 配置类中通过@Bean ...
- Spring Boot2.x-09 基于Spring Boot 2.1.2 + Mybatis使用自定义注解实现数据库切换
文章目录 概述 场景说明:读写分离 操作步骤 工程结构 Step1 自定义注解 Step2 数据源定义 Step3 配置文件配置数据源 Step4 数据源实例化DatasourceConfig Ste ...
- Spring Boot (七)MyBatis代码自动生成和辅助插件
一.简介 1.1 MyBatis Generator介绍 MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper.dao.entity 的框架 ...
- Spring Boot (八)MyBatis + Docker + MongoDB 4.x
一.MongoDB简介 1.1 MongoDB介绍 MongoDB是一个强大.灵活,且易于扩展的通用型数据库.MongoDB是C++编写的文档型数据库,有着丰富的关系型数据库的功能,并在4.0之后添加 ...
- Spring Boot 菜鸟教程 3 MyBatis
GitHub src="//ghbtns.com/github-btn.html?user=je-ge&repo=spring-boot&type=watch&cou ...
- spring boot微服务架构mybatis多数据源切换
1,先看个目录结构图 可以看到,我把要设置的配置文件都放在了config文件夹下面 2,Application.java是程序启动项,里面必须设置 3,application.properties是多 ...
- win7 x64 基于spring boot+elasticsearch+Redis+mysql+mybatis进行搜索引擎web开发--爬取IThome热评(一)
因为工作需要,我准备在win7 x64系统上基于springboot +elasticsearch+redis搭建全文索引服务器. 1. elasticsearch安装比较方便,直接去官网下载了ela ...
- Spring Boot基础学习笔记12:组件注册整合Servlet三大组件
文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...
最新文章
- 《R语言与数据挖掘最佳实践和经典案例》—— 第3章 数 据 探 索
- MySQL-基础操作之增删改查
- 十一、深入JavaScript的定时器(七)
- 计算机局域网有哪些硬件组成,局域网的硬件组成有哪些
- ZFNet: Visualizing and Understanding Convolutional Networks
- 脚本变量中包含空格的解决办法
- 无法打开包括文件: “type_traits”
- webp的js插件_Vuejs webp图片支持,插件开发过程~
- 小鸟云服务器如何安装rstudio-server?
- margin 外边距合并问题
- 2022湖北省各市专精特新小巨人企业认定补贴、条件流程
- AHB2APB桥接器设计(1)——基本原理
- 5-32 哥尼斯堡的“七桥问题” (25分)
- Facebook再现丑闻,约100位应用程序开发人员偷看用户数据
- Python 实时盯盘并在股价突破时通过微信通知(tushare的使用)
- python模块文件的扩展名不一定是py_Python文件扩展名.py?.pyc?.pyd?
- JavaWeb网上书城项目总结(初步1.0)
- 酷瓜云课堂局域网课程点播+直播系统
- 微信投票服务器出现故障,微信投票安全隐患,微信存在安全隐患怎么解除
- Synplify参考资料整理
热门文章
- 有哪些好的刷题网站?2018年最受欢迎的编程挑战网站
- C#LeetCode刷题之#54-螺旋矩阵(Spiral Matrix)
- dockerfile写法和docker-compose和docker-compose.yml
- 理解搜索引擎并且善用google
- golang web服务器_使用Go制作自己的Web服务器:快速指南
- macos必做的设置_如何在MacOS上设置PHP,CaddyServer和Kirby —以及为什么要这样做
- mysql 8 免安装版 下载及配置
- 利用python开发购物车系统
- Spark SQL 简介
- Python Flask 中的路由