@Async,@Transational注解失效的原因和解决方法
- @Service
- public class PersonServiceImpl implements PersonService {
- @Autowired
- PersonDao personDao;
- @Override
- @Transactional
- public boolean addPerson(Person person) {
- boolean result = personDao.insertPerson(person)>0 ? true : false;
- return result;
- }
- @Override
- //@Transactional
- public boolean updatePersonByPhoneNo(Person person) {
- boolean result = personDao.updatePersonByPhoneNo(person)>0 ? true : false;
- addPerson(person); //测试同一个类中@Transactional是否起作用
- return result;
- }
- }
- @Service
- class A{
- @Transactinal
- method b(){...}
- method a(){ //标记1
- b();
- }
- }
- //Spring扫描注解后,创建了另外一个代理类,并为有注解的方法插入一个startTransaction()方法:
- class proxy$A{
- A objectA = new A();
- method b(){ //标记2
- startTransaction();
- objectA.b();
- }
- method a(){ //标记3
- objectA.a(); //由于a()没有注解,所以不会启动transaction,而是直接调用A的实例的a()方法
- }
- }
当我们调用A的bean的a()方法的时候,也是被proxy$A拦截,执行proxy$A.a()(标记3),然而,由以上代码可知,这时候它调用的是objectA.a(),也就是由原来的bean来调用a()方法了,所以代码跑到了“标记1”。由此可见,“标记2”并没有被执行到,所以startTransaction()方法也没有运行。
- 把这两个方法分开到不同的类中;
- 把注解加到类名上面;
@Async,@Transational注解失效的原因和解决方法相关推荐
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法 参考文章: (1)在同一个类中,一个方法调用另外一个有注解(比如@Async, ...
- 使用注解失败的原因及解决方法
启动项目报错: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with n ...
- js放到head中失效的原因与解决方法
1.今天写js碰到一个奇怪的问题,写好的js放到body里面执行,但是放到head中没有任何效果,为什么导致这种原因呢? 看失效代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- Ctrl+c失效问题原因、解决方法及相关拓展
问题说明: 接手新业务,发现若干台主机(系统为Redhat 5.5)出现Ctrl+c失效情况,即进入一个持续的进程后(如top)无法使用Ctrl+c的方式退出该进程. 问题分析: Ctrl+c本质上是 ...
- Mysql中索引失效得原因和解决
文章目录 前言 1.单个字段测试 varchar字段测试 name字段 name and status 测试 name and status and address 测试 2.最左前缀法则 复合索引测 ...
- SpringBoot 中@Autowired 注入失效原因及解决方法
SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...
- 键盘的win键不能用怎么办 电脑win键失效的原因及解决办法
电脑疑问 PConline IT百科 我们知道键盘的win键能快速打开开始菜单,配合其他键使用也能方便打开其他软件,可以让我们使用电脑更快捷,但是最近有的人发现自己电脑键盘的win键不能使用了,这是 ...
- 计算机音频和网络忽然失效,win7系统电脑突然没有声音五种原因及解决方法
现在电脑已经是生活中必不可缺少的一部分,操作 win7系统 电脑过程中难免出现一些故障问题,这不有位用户说自己电脑运行过程中突然没有声音了,也不知道什么情况,针对win7系统电脑突然没有声音的问题,下 ...
- 常见的 OOM 原因及其解决方法(OutOfMemoryError)
当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误.本文总结了常见的 OOM 原因及其解决方法,如下图所示.如有遗漏或错误,欢迎补充指正. 1.Java ...
最新文章
- Hadoop DFS源码研究之---Hadoop RPC机制
- Python中使用turtle绘制多个同心圆
- 最新最全的用户画像系统详解,还可免费试用哦!
- Device eth0 does not seem to be present,delaying initialization.
- 968. Binary Tree Cameras 监控二叉树
- 王道考研 计算机网络5 分层结构 协议 服务 接口
- [dp]最长单调递增子序列LIS
- array_keys_PHP array_keys()函数与示例
- python画折线图代码实现_python如何绘制分布折线图 python绘制分布折线图代码示例...
- WampServer + phpcms 开发中,浏览器 localhost 出现 Cannot to connect to mySQL server 的原因分析和解决办法?
- 华为eNSP Windows10安装教程及错误讲解
- 双稳态电路的两个稳定状态是什么_555定时器原理知多少?四种应用电路分享
- 十张数据图回顾雾霾,北京污染从南向北加深趋势明显
- SEO常用的数据名词解释
- 一毕业就上了艘“火箭”,这群校招生在大公司创业
- 实现蝴蝶翩翩飞舞的效果
- 【练习】第一个微信小程序
- 全球及中国散热产业竞争现状与市场价值分析报告2022版
- IDEA安装MAVEN
- 计算机视觉摔倒检测,有关摔倒检测数据集(fall detection databases)