1.问题

在使用@Transactional注解管理事务的时候会出现很多错误,比如:

***  was not registered for synchronization because synchronization is not active
或者
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ca5cba7]
JDBC Connection [com.mysql.jdbc.JDBC4Connection@79436e0a] will not be managed by Spring

总之就是事务没有被spring管理,注解@Transactional失效.

2.原因:

重复扫描包的问题. 因为springmvc的配置文件已经扫描了service和controller注解,而spring的配置文件又扫描了一遍,所以会出错.

spring 通过 cglib 生成了带有事务功能的代理类.

但是spring mvc 在扫描一遍又重新生成了 service 层的不带事务功能的代理类,把之前的代理类给覆盖掉了,

所以会导致事务失效.

因此解决就是把springmvc扫描service给过滤掉就可以了,

3.解决:

让springmvc的配置文件只扫描controller

    <context:component-scan base-package="com.fyq" >
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Service" />
</context:component-scan>

通过 filter 把service注解给过滤掉.

同理 spring 的配置文件只扫描service层,把controller给过滤掉.

    <context:component-scan base-package="com.fyq" >
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

该用spring-boot了...

最新文章

  1. Eclipse里面Outline中图标的含义
  2. GJM : Unity3D - UI - UI边缘流光特效小技巧 [转载]
  3. NTFS 权限讲解 ACL
  4. php file_get_contents 绕过
  5. 使用JS来实现验证码功能
  6. TortoiseGit连接github不用每次输入用户名和密码的方法
  7. java中动态反射
  8. APP的测试过程和重点
  9. vscode中使用markdown
  10. LeetCode算法题-Rotate String(Java实现)
  11. 617A
  12. WebService调用SSAS教程
  13. PowerShell工作流学习-6-向脚本工作流添加检查点
  14. CentOS 安装最新版本 Git
  15. android中include
  16. quora 的东西就是不一样
  17. 时间序列 ARIMA 模型 (三)
  18. ViewPage+frament不预载入下一个Frament数据解决的方法
  19. Bug笔记:Google Map第一次缩放位置偏移
  20. Volley的使用

热门文章

  1. PHP-------抽象和接口
  2. Web Pages
  3. java.sql.date和java.util.date的区别和转换
  4. 撸一个简单的MVVM例子
  5. Swift:一个基于.NET Core的分布式批处理框架
  6. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)
  7. Nginx负载均衡+代理+ssl+压力测试
  8. Context initialization failed org.springframework.beans.factory.BeanCreationException
  9. 阿里云服务器发送邮件失败,25端口被禁用,采用ssl 方式 465端口发送
  10. 用java集合模拟登录和注册功能