spring + mybatis 下出现JDBC Connection *** will not be managed by Spring错误

框架   druid 、spring 4.1.3 、mybatis 3.2.8


访问时日志打印

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6429f8f2] was not registered for synchronization because synchronization is not active
2017-10-21 10:22:53,647 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] testWhileIdle is true, validationQuery not set
2017-10-21 10:22:53,659 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[INFO] {dataSource-1} inited
JDBC Connection [ConnectionID:1 ClientConnectionId: 3ce6b337-3246-4db3-8edd-dcaabbe19925] will not be managed by Spring

同事事务也不生效


事务配置

	
	
		
		
	
	
	
		
			
			
			
			
			
			
			
			
			
			
			
		
	
	
	
		
	

数据库连接配置

	
	
	
	
	
	
		
		
	
	
	
	
		
		
		
		
		
		
	
	
	
	
		
		
	
	
	
    
        
    


调试很久没排查到错误,最后想到是不是配置切点扫描表达式的问题,仔细看了切点表达式

spring + mybatis 下出现JDBC Connection *** will not be managed by Spring错误_第1张图片


execution(* com.ciguo.service.*.*(..))

这种写法是扫描到service下一级*.java里面的方法,显然是找不到的,于是乎改成

execution(* com.ciguo.service.*.impl.*.*(..))

impl后面第一个 *  表示Java类,第二个 * 表示方法 这样子就能扫描到了,重启测试,

Creating a new SqlSession
Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1827f65a]
2017-10-21 10:38:48,126 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] testWhileIdle is true, validationQuery not set
2017-10-21 10:38:48,140 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[INFO] {dataSource-1} inited
JDBC Connection [ConnectionID:1 ClientConnectionId: a66941f8-3f93-4b13-9946-45de09c9b1d8] will be managed by Spring

SqlSession现在已经被spring管理了,事务也生效了

你可能感兴趣的:(Spring)