spring mvc + mybatis下事务不回滚 日志报JDBC Connection will not be managed by Spring

1.service中public方法上加了@Transactional–故排除;

2.mybatis配置文件里也有了相应的配置–故排除;


 
  
 
 

3.spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback;如果发生的异常是checked异常,默认情况下数据库操作还是会提交的。项目中的抛出的异常继承了RuntimeException --故排除

4.看到日志中JDBC Connection will not be managed by Spring 搜索了一下
服务器启动时的加载配置文件的顺序为web.xml–applicationContext.xml–XXX-servlet.xml(SpringMVC的配置文件),由于applicationContext.xml配置文件中Controller会先进行扫描装配,但是此时service还没有进行事务增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力),所以我们必须在applicationContext.xml中不扫描Controller.
然后在项目中spring-config.xml中


 
  
 

在spring-servlet.xml中

 
 
  
  
 

重启测试成功,问题解决

你可能感兴趣的:(日常小问题)