楼主工做一年了,整整一年了,转行整整一年了,各类积累,今天就把个人ssm框架心得体会告诉须要的朋友们一下:前端
楼主所接触到的目前除了微服务的springboot框架以外,最火的就是ssm框架了,为何?java
一、spring的IOC依赖注入为咱们省去了new对象的时间,也帮咱们节省了不少的内存空间,还有他的事务管理transaction和AOP动态代理都为咱们这些小白作了不少事情。mysql
二、springmvc呢比Struts2配置简便多了。angularjs
3mybatis更为数值的就是直接操做sql,将hibernate繁重的查询拿掉了,咱们能够很自如的写咱们所须要的sql,大大减轻了服务器的压力。接下来咱们就正式开始介绍他们的配置详细信息!web
首先咱们要很清楚一个简单的项目的项目结构和他们之间的关系,咱们把技术从后往前说:spring
1、数据库,楼主用的是mysql(免费)sql
2、mybatis(mybati-splus mybatis加强版)、Druid链接池数据库
3、springexpress
4、Java代码json
5、springMVC
6、前端代码
咱们很清楚,一个web项目就是从前日后进行对数据库的crud,实际上就是Java代码对数据库进行的crud,Java有API能够直接对数据库进行操做,可是很麻烦,因此咱们就有了中间的mybatis来加强Java操做数据库的能力,因此mybatis(辅助角色)就像一个月老同样牵线mysql和Java之间更好的接触!下面就是重点了:
首先:要操做数据库确定要连接数据库,因此mybatis提供了咱们一套连接数据库的配置,可是咱们操做数据库确定是不能一个操做A等另外一个操做B用完了连接以后释放了连接销毁连接,A再去建立链接,链接数据库进行操做,这样很慢,因此就有了链接池的出现了(具体链接池的做用大家能够百度)。
咱们用链接池去链接数据库,用id标注这个链接池叫dataSource(注意这里只能是这样写,写错了是启动不了的)。这样咱们用链接池将mybatis和数据库已经创建好了连接
其次:咱们要把mybatis和spring集成起来,因此咱们会使用到下面这个类
看名字咱们就知道,这是sql会话工厂,因此咱们要把mybatis的相关东西交给spring管理,注意上面的p:(属性)扩号里面的不能写错,写错了是起不来的服务器,我打开源码就知道SqlSessionFactory就知道,里面有属性名称都是那样写的,咱们知道spring的依赖注入默认的是类名首字母小写,若是你写错了,spring就找不到相应的资源启动报错!固然咱们的数据源远也要交给spring管理。而后咱们要自动扫面mapper,用,mapper.java和mapper.xml创建链接
属性basePackage表示mapper.java所在的位置,隐藏的是mapper文件所在的共同包,包与包之间用.隔开,两个*号表示中间省略的不同的包名,能够用*代替,他就会自动扫面匹配全部(已隐藏掉)开头,以dao结尾的包下面的全部的mapper.java文件。
再者:接下来咱们就要把事务管理加进去,什么是事务有什么特性大家须要的能够本身百度一下这里不详细介绍了
配置事务管理通知:propagation事务的传播性,REQUIRED表示这是一个事务就管理这个事务,若是不是事务就建立一个事务,后面表示只要抛出异常事务就会回滚,什么意思呢,就是好比你的全部改变数据的操做只要抛出异常,数据就会回到原来没有改变以前的状态;下面的read-only表示对方法名是以select和count开头的只能进行查的操做不能进行增删改操做!而后下面就要对这些事务具体是用在哪里的进行配置
箭头所指的很熟悉吧,这个配置就是告诉上面的事务管理哪些地方,expression是切入点,表示,对以什么开头,中间有service包下面的全部包的全部方法进行事务管理,后面的括号表示方法。这里mybatis和spring的集成配置就介绍的差很少了
最后:springMVC的配置,springmvc的做用是什么呢就是分发咱们的请求到指定的控制器里面找到适配器执行相应的操做,为何说这句话呢,就是他不直接管理咱们的service,因此咱们在MVC中直接配置扫描全部的controller就好了
mcv是直接和web创建的联系的,因此为了防止IE在返回时json数据的时候出现下载状况,咱们都会配置一个避免IE下载的配置,网上大把这里再也不贴图。而后咱们前端用的angularjs先后分离,不是用的jsp,若是大家用的jsp把这个加上
第一个自定义的重定向,意思是访问路径是访问的根目录的时候会自动跳转到你后面配置的路径上去其余的大家看注释就好!
这里一个简单的ssm框架就行了,至于项目目录结构楼主用的是maven,大家去了解下maven就行了,最后在web.xml里面吧classpath下面的配置文件交给web.xml在启动的时候加载就好了!若有不对请各位大佬指出,小弟改过;若有什么疑问也请提出来共勉!