mybaits 整合 spring 事务未生效

前2天整合系统的时候,碰到的问题,mybatis整合spring事务 没有生效,查看spring事务日志发现

[  64959]  DEBUG - mybatis.spring.SqlSessionUtils - Creating a new SqlSession
[  64986]  DEBUG - mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@735d7f] was not registered for synchronization because synchronization is not active
[  65110]  DEBUG - dbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
[  65110]  DEBUG - ction.SpringManagedTransaction - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1309697] will not be managed by Spring

说的Spring无法管理mybatis的SqlSession,晚上查了一堆资料,对这类问题的解决,大多是跟Spring初始化的顺序有关,回来仔细检查了一下,确实如此。

想要Spring 事务拦截器生效需要3个条件:
1.正确声明拦截点(serivce、manage..)
2.正确声明数据源以及事务策略
3.正确配置好mybatis与spring的整合

我的问题是把事务配置放在了 serivce 注入扫描的配置前面了,因此在初始化的时候,根本找不到事务拦截器,要拦截的Servce方法,调整顺序后问题解决

猜你喜欢

转载自fireshark.iteye.com/blog/2191980