Springboot 整合mybatis(二)

本篇详细介绍下每个文件的作用

一、配置文件 application.yml 

关键的参数是最后2个:

mapper-locations:  --存放mybatis对应的sql语句的XML文件的位置,这也是为什么上篇文章里说的此文件必须存放在resources目录下。

type-aliases-package: 数据表对应的实体类文件的存放路径。

PS:简单讲下yml格式的配置文件与properties格式的不同

      1.在properties 文件中是以“.”进行分割,在yml 中使用“:”进行分割
      2.yml 的数据格式和json 的格式很像,都是Key-Value 结构的。并且是通过“:”赋值
      3.在yml 中缩进一定不能使用TAB 件,只能用空格,否则会报错。
      4.每个Key的冒号后面一定要加一个空格

二、UserMapper.xml

mybatis对应的sql语句的XML文件,位置必须在resources目录下。

三、Dao层UserMapper.java 接口文件

与SpringMVC不一样地方就是要新增一个注解@Mapper。

四、Service 服务层

    包含接口文件及实现,和以前在SpringMVC下没什么区别。

    注意:第16行与21行发生异常时,不同的回滚处理,在某些特殊功能逻辑下可能需要用到不回滚异常的处理。

五、Controller层

  由于本案例使用的是测试单元,没有使用Controller层,就不多说了。

六、事务的统一处理 TransactionAdviceConfig.java

   在这里我使用的是AOP方式,具体的代码如下图

简单介绍下几个关键的地方

第19行:对符合这个规则的所有服务层都进行事务管理,在本案例中即com.example.demo.service下所有以Service结尾的fu服务层进行事务管理。

第26-27行:设置事务的传播机制为 PROPAGATION_REQUIRED。

第29-31行:设置事务的传播机制为 PROPAGATION_REQUIRED,且为只读事务。这里与以前在SpringMVC通过XML方式整合mybatis是有点不一样,在XML里时为<tx:method name="load*" propagation="SUPPORTS" read-only="true"/>,转播机制为SUPPORTS,是可以为只读事务的,而在这里将传播机制设为 PROPAGATION_SUPPORTS,只读事务不起作用,原因我没有去查,如果有哪位同学知道,请告诉我。

第33-42行:设置服务层每个方法名的不同事务机制,这样做有几点好处,

      1)规范系统的命名

      2)通过方法名称即可知道此方法主要是干什么用的

      3)提高效率

PS: 在SpringMVC下,可以通过XML设置出现异常不回滚的方法吗前缀,但是在Springboot下我没有找到统一设置的地方,只能通过在方法上加注解的方式实现,如上面第四步所示,如果哪位同学知道,也请告诉我。

七、测试文件ApplicationTests.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值