Spring+SpringMvc解决事务无效问题
来源:互联网 发布:淘宝无线展现词没有了 编辑:程序博客网 时间:2024/06/11 02:09
最近做课设,发现我的service层配置的事务没有效果,首先排查就是就是application-transcation.xml 配置的事务如下:
<!-- 事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><tx:method name="get*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 切面 --><aop:config><aop:pointcut id="services"expression="execution(* com.gongyexueyuan.service.*.*(..))" /><aop:advisor pointcut-ref="services" advice-ref="txAdvice" /></aop:config>也没有错误 但是通过查阅资料发现我的Springmvc.xml扫面是这样的:<context:component-scan base-package="com.gongyexueyuan" ></context:component-scan> 原因就是因为我通过注解扫描后率先生成Bean 扫描 @Component, @Repository, @Service, or @Controller 以及@Autowired j接着才会加载事务配置文件 这时候事务对提前生成的对象没有作用了。所以扫描service 要在事务中生成对象这时候就需要使用
<!--base-package 这个需要注意 因为这个配置作用是指扫描@Controller 当你写的不只是controller包的时候就需要加上use-default-filters="false"当你写到com.gongyexueyuan.controller 可以不写><context:component-scan base-package="com.gongyexueyuan" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><context:component-scan base-package="com.gongyexueyuan.controller">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>这时候还不可以因为这只是在加载spingmvc生成有@Controller注解的类,其他还没有比如@service 以及@Repository 等这时候就需要在application-transcation.xml配置扫描包如下:<context:component-scan base-package="com.gongyexueyuan" ><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>这个配置是除了带有@Controller 失效其他有效。这时生成的对象就加上事务控制了。到此由于扫描包引起的事务失效得到解决。失效事务原因还有,这只是其中一种,以后望大家多多分享心得.
0 0
- Spring+SpringMvc解决事务无效问题
- spring + springMVC + mybatis 事务无效
- 解决基于SpringMVC+MYSQL注解@Transaction事务无效问题
- 解决spring、springMVC重复扫描导致事务失效的问题
- 解决spring、springMVC重复扫描导致事务失效的问题
- spring + springMVC声明式事务失效问题
- Spring事务控制无效?
- 解决osgi spring 事务配置问题
- spring springmvc 事务
- spring+springMVC事务不回滚
- SpringMvc + spring jdbctemplete 事务
- springmvc spring 事务不回滚
- 解决springMVC与Hibernate集成AOP事务不起作用的问题
- Mybatis+SpringMVC+注解事务遇到的一些问题及解决
- SpringMVC关于事务的处理问题(待解决)
- spring springmvc mybatics 中配置事务不回滚问题。。。
- SpringMVC事务配置问题
- 解决在spring配置文件中包扫描无效问题
- hadoop2.7.3+zookeeper3.4.6+jdk1.8+centos7的三台服务器环境部署
- 第3章 起步
- Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference
- 【Web】【Ajax】Ajax调用Aspx后台方法
- 数据库隔离级别 整理
- Spring+SpringMvc解决事务无效问题
- vue.js环境配置--vue-cli
- 四元数与欧拉角之间的换算关系
- 搜索框设计指南
- python中用matplotlib包进行简单的可视化
- 在Windows上安装Redis
- 【数据压缩】WAV PCM FORMAT
- align和valign属性
- AndroidStudio 删除行的快捷键