spring、springmvc、mybatis框架整合梳理!
2017-10-01 00:00
197 查看
摘要: 三个框架都是可以单独使用的,重要的是怎么把他们整合起来,了解他们之间的关系!就比较好动配置文件里面的配置了!
楼主工作一年了,整整一年了,转行整整一年了,各种积累,今天就把我的ssm框架心得体会告诉需要的朋友们一下:
楼主所接触到的目前除了微服务的springboot框架之外,最火的就是ssm框架了,为什么?
1、spring的IOC依赖注入为我们省去了new对象的时间,也帮我们节省了很多的内存空间,还有他的事务管理transaction和AOP动态代理都为我们这些小白做了很多事情。
2、springmvc呢比Struts2配置简便多了。
3mybatis更为数值的就是直接操作sql,将hibernate繁重的查询拿掉了,我们可以很自如的写我们所需要的sql,大大减轻了服务器的压力。接下来我们就正式开始介绍他们的配置详细信息!
首先我们要很清楚一个简单的项目的项目结构和他们之间的关系,我们把技术从后往前说:
一、数据库,楼主用的是mysql(免费)
二、mybatis(mybati-splus mybatis增强版)、Druid连接池
三、spring
四、Java代码
五、springMVC
六、前端代码
我们很清楚,一个web项目就是从前往后进行对数据库的crud,实际上就是Java代码对数据库进行的crud,Java有API可以直接对数据库进行操作,但是很麻烦,所以我们就有了中间的mybatis来增强Java操作数据库的能力,所以mybatis(辅助角色)就像一个月老一样牵线mysql和Java之间更好的接触!下面就是重点了:
首先:要操作数据库肯定要链接数据库,所以mybatis提供了我们一套链接数据库的配置,但是我们操作数据库肯定是不能一个操作A等另一个操作B用完了链接之后释放了链接销毁链接,A再去创建连接,连接数据库进行操作,这样很慢,所以就有了连接池的出现了(具体连接池的作用你们可以百度)。
![](https://static.oschina.net/uploads/space/2017/1001/111226_xJ3q_3689525.png)
我们用连接池去连接数据库,用id标注这个连接池叫dataSource(注意这里只能是这样写,写错了是启动不了的)。这样我们用连接池将mybatis和数据库已经建立好了链接
其次:我们要把mybatis和spring集成起来,所以我们会使用到下面这个类
![](https://static.oschina.net/uploads/space/2017/1001/111612_Usah_3689525.png)
看名字我们就知道,这是sql会话工厂,所以我们要把mybatis的相关东西交给spring管理,注意上面的p:(属性)扩号里面的不能写错,写错了是起不来的服务器,我打开源码就知道SqlSessionFactory就知道,里面有属性名称都是那样写的,我们知道spring的依赖注入默认的是类名首字母小写,如果你写错了,spring就找不到相应的资源启动报错!当然我们的数据源远也要交给spring管理。然后我们要自动扫面mapper,用,mapper.java和mapper.xml建立连接
![](https://static.oschina.net/uploads/space/2017/1001/112157_4DgX_3689525.png)
属性basePackage表示mapper.java所在的位置,隐藏的是mapper文件所在的共同包,包与包之间用.隔开,两个*号表示中间省略的不一样的包名,可以用*代替,他就会自动扫面匹配所有(已隐藏掉)开头,以dao结尾的包下面的所有的mapper.java文件。
再者:接下来我们就要把事务管理加进去,什么是事务有什么特性你们需要的可以自己百度一下这里不详细介绍了
![](https://static.oschina.net/uploads/space/2017/1001/112657_sLpQ_3689525.png)
配置事务管理通知:propagation事务的传播性,REQUIRED表示这是一个事务就管理这个事务,如果不是事务就创建一个事务,后面表示只要抛出异常事务就会回滚,什么意思呢,就是比如你的所有改变数据的操作只要抛出异常,数据就会回到原来没有改变之前的状态;下面的read-only表示对方法名是以select和count开头的只能进行查的操作不能进行增删改操作!然后下面就要对这些事务具体是用在哪里的进行配置
![](https://static.oschina.net/uploads/space/2017/1001/113356_ZIrT_3689525.png)
箭头所指的很熟悉吧,这个配置就是告诉上面的事务管理哪些地方,expression是切入点,表示,对以什么开头,中间有service包下面的所有包的所有方法进行事务管理,后面的括号表示方法。这里mybatis和spring的集成配置就介绍的差不多了
最后:springMVC的配置,springmvc的作用是什么呢就是分发我们的请求到指定的控制器里面找到适配器执行相应的操作,为什么说这句话呢,就是他不直接管理我们的service,所以我们在MVC中直接配置扫描所有的controller就行了
![](https://static.oschina.net/uploads/space/2017/1001/114510_7U3D_3689525.png)
mcv是直接和web建立的联系的,所以为了防止IE在返回时json数据的时候出现下载情况,我们都会配置一个避免IE下载的配置,网上大把这里不再贴图。然后我们前端用的angularjs前后分离,不是用的jsp,如果你们用的jsp把这个加上
![](https://static.oschina.net/uploads/space/2017/1001/114922_5QAi_3689525.png)
第一个自定义的重定向,意思是访问路径是访问的根目录的时候会自动跳转到你后面配置的路径上去其他的你们看注释就好!
这里一个简单的ssm框架就好了,至于项目目录结构楼主用的是maven,你们去了解下maven就好了,最后在web.xml里面吧classpath下面的配置文件交给web.xml在启动的时候加载就行了!如有不对请各位大佬指出,小弟改过;如有什么疑问也请提出来共勉!
楼主工作一年了,整整一年了,转行整整一年了,各种积累,今天就把我的ssm框架心得体会告诉需要的朋友们一下:
楼主所接触到的目前除了微服务的springboot框架之外,最火的就是ssm框架了,为什么?
1、spring的IOC依赖注入为我们省去了new对象的时间,也帮我们节省了很多的内存空间,还有他的事务管理transaction和AOP动态代理都为我们这些小白做了很多事情。
2、springmvc呢比Struts2配置简便多了。
3mybatis更为数值的就是直接操作sql,将hibernate繁重的查询拿掉了,我们可以很自如的写我们所需要的sql,大大减轻了服务器的压力。接下来我们就正式开始介绍他们的配置详细信息!
首先我们要很清楚一个简单的项目的项目结构和他们之间的关系,我们把技术从后往前说:
一、数据库,楼主用的是mysql(免费)
二、mybatis(mybati-splus mybatis增强版)、Druid连接池
三、spring
四、Java代码
五、springMVC
六、前端代码
我们很清楚,一个web项目就是从前往后进行对数据库的crud,实际上就是Java代码对数据库进行的crud,Java有API可以直接对数据库进行操作,但是很麻烦,所以我们就有了中间的mybatis来增强Java操作数据库的能力,所以mybatis(辅助角色)就像一个月老一样牵线mysql和Java之间更好的接触!下面就是重点了:
首先:要操作数据库肯定要链接数据库,所以mybatis提供了我们一套链接数据库的配置,但是我们操作数据库肯定是不能一个操作A等另一个操作B用完了链接之后释放了链接销毁链接,A再去创建连接,连接数据库进行操作,这样很慢,所以就有了连接池的出现了(具体连接池的作用你们可以百度)。
![](https://static.oschina.net/uploads/space/2017/1001/111226_xJ3q_3689525.png)
我们用连接池去连接数据库,用id标注这个连接池叫dataSource(注意这里只能是这样写,写错了是启动不了的)。这样我们用连接池将mybatis和数据库已经建立好了链接
其次:我们要把mybatis和spring集成起来,所以我们会使用到下面这个类
![](https://static.oschina.net/uploads/space/2017/1001/111612_Usah_3689525.png)
看名字我们就知道,这是sql会话工厂,所以我们要把mybatis的相关东西交给spring管理,注意上面的p:(属性)扩号里面的不能写错,写错了是起不来的服务器,我打开源码就知道SqlSessionFactory就知道,里面有属性名称都是那样写的,我们知道spring的依赖注入默认的是类名首字母小写,如果你写错了,spring就找不到相应的资源启动报错!当然我们的数据源远也要交给spring管理。然后我们要自动扫面mapper,用,mapper.java和mapper.xml建立连接
![](https://static.oschina.net/uploads/space/2017/1001/112157_4DgX_3689525.png)
属性basePackage表示mapper.java所在的位置,隐藏的是mapper文件所在的共同包,包与包之间用.隔开,两个*号表示中间省略的不一样的包名,可以用*代替,他就会自动扫面匹配所有(已隐藏掉)开头,以dao结尾的包下面的所有的mapper.java文件。
再者:接下来我们就要把事务管理加进去,什么是事务有什么特性你们需要的可以自己百度一下这里不详细介绍了
![](https://static.oschina.net/uploads/space/2017/1001/112657_sLpQ_3689525.png)
配置事务管理通知:propagation事务的传播性,REQUIRED表示这是一个事务就管理这个事务,如果不是事务就创建一个事务,后面表示只要抛出异常事务就会回滚,什么意思呢,就是比如你的所有改变数据的操作只要抛出异常,数据就会回到原来没有改变之前的状态;下面的read-only表示对方法名是以select和count开头的只能进行查的操作不能进行增删改操作!然后下面就要对这些事务具体是用在哪里的进行配置
![](https://static.oschina.net/uploads/space/2017/1001/113356_ZIrT_3689525.png)
箭头所指的很熟悉吧,这个配置就是告诉上面的事务管理哪些地方,expression是切入点,表示,对以什么开头,中间有service包下面的所有包的所有方法进行事务管理,后面的括号表示方法。这里mybatis和spring的集成配置就介绍的差不多了
最后:springMVC的配置,springmvc的作用是什么呢就是分发我们的请求到指定的控制器里面找到适配器执行相应的操作,为什么说这句话呢,就是他不直接管理我们的service,所以我们在MVC中直接配置扫描所有的controller就行了
![](https://static.oschina.net/uploads/space/2017/1001/114510_7U3D_3689525.png)
mcv是直接和web建立的联系的,所以为了防止IE在返回时json数据的时候出现下载情况,我们都会配置一个避免IE下载的配置,网上大把这里不再贴图。然后我们前端用的angularjs前后分离,不是用的jsp,如果你们用的jsp把这个加上
![](https://static.oschina.net/uploads/space/2017/1001/114922_5QAi_3689525.png)
第一个自定义的重定向,意思是访问路径是访问的根目录的时候会自动跳转到你后面配置的路径上去其他的你们看注释就好!
这里一个简单的ssm框架就好了,至于项目目录结构楼主用的是maven,你们去了解下maven就好了,最后在web.xml里面吧classpath下面的配置文件交给web.xml在启动的时候加载就行了!如有不对请各位大佬指出,小弟改过;如有什么疑问也请提出来共勉!
相关文章推荐
- maven整合:最新ssm框架实现spring4.2,springmvc4.2,mybatis3.2
- spring、mybatis和springmvc三个框架的整合
- 最基础SSM(spring springmvc mybatis)框架整合入门解析
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- 【SSM】SpringMVC、Spring(5.0.3)、MyBatis(3.4.5)三大框架的整合项目入门示例
- springMVC学习笔记---day02 springMVC+spring+mybatis整合开发框架搭建
- maven + SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合
- springmvc mybatis 整合 框架源码 bootstrap html5 mysql oracle spring
- SSM(Spring、SpringMVC和Mybatis)框架整合404问题解决
- springmvc mybatis 整合 框架源码 bootstrap html5 mysql oracle spring
- 使用intellij idea搭建spring-springmvc-mybatis整合框架环境
- SSM框架——整合(Spring、SpringMVC、MyBatis)
- SSM整合---SpringMVC、Spring、MyBatis三个框架的整合步骤
- Spring、SpringMVC、Mybatis三大框架整合步骤
- SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- SSM(spring,springMVC,Mybatis)框架的整合
- maven整合:最新ssm框架实现spring4.2,springmvc4.2,mybatis3.2
- springmvc4 mybatis 整合 框架源码 bootstrap html5 mysql oracle sqlsever spring SSM
- SSM框架(一)之SSM框架整合(Spring,SpringMVC,MyBatis)