博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring事物不起作用
阅读量:7067 次
发布时间:2019-06-28

本文共 987 字,大约阅读时间需要 3 分钟。

 

1、首先使用如下代码 确认你的bean 是代理对象吗?

必须是Spring定义(通过XML或注解定义都可以)的Bean才接受事务。

直接new出来的对象添加事务是不起作用的。

可以通过以下方式判断是否是代理对象:

 

AopUtils.isAopProxy(Object object)

AopUtils.isCglibProxy(Object object) //cglib

AopUtils.isJdkDynamicProxy(Object object) //jdk动态代理

 

 2、入口函数必须是public,否则事务不起作用。这一点由Spring的AOP特性决定的。

 

 3、切入点配置错误。

<!-- 使用annotation注解方式配置事务 -->

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>

<!--使用切面方式配置事务-->

<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" isolation="READ_COMMITTED" propagation="REQUIRED" rollback-for=".lang.Exception" /> 
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.tyyd..*Service.do*(..))"/>
<aop:advisor advice-ref="txadvice" pointcut-ref="pointcut"/>
</aop:config> 

 

4、如果你使用了springmvc,可能是context:component-scan重复扫描引起的:

 

5、如使用且引擎是MyISAM造成的(因为不支持事务),改成InnoDB即可。

 

6、查看方法写对没有,否则拦截不到。

转载于:https://www.cnblogs.com/h-g-f-s123/p/6504565.html

你可能感兴趣的文章
textarea自动调整高宽
查看>>
python基础---面向对象高级
查看>>
vim的分屏
查看>>
windows客户端安装
查看>>
关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)
查看>>
Centos7怎么安装gnome桌面及远程桌面VNC
查看>>
mount挂载报错mount:you must specify the filesystem type
查看>>
yaf 模块与控制器
查看>>
Python 模块调用和global的用法
查看>>
Ubuntu 12.04 修改/etc/resolv.conf重启后还原成修改前状态解决办法
查看>>
Python—redis
查看>>
HPE牵手DDN打造整合的高性能服务器存储产品组合
查看>>
mycat分片规则之范围约定规则(auto-sharding-long)
查看>>
windows配置java环境变量
查看>>
python流程处理
查看>>
<kubernetes in action>看书笔记
查看>>
python密码破解工具patator
查看>>
众筹网站Kickstarter不准备上市:转型公益企业
查看>>
OpenStack入门修炼之nova服务(计算节点)的部署与测试(11)
查看>>
ubuntu安装apache php mysql phpmyadmin
查看>>