线程池中使用spring aop事务增强
2020-03-11 17:51
85 查看
这篇文章主要介绍了线程池中使用spring aop事务增强,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
问题描述:
在项目里使用了线程池运行同一个类的实例方法,代码大致如下,运行时发现job方法的事务不生效
@Transactional public void doJob() { EXECOTOR.execute(() ->job()); } @Transactional public void job(){ //db operation }
原因分析:
debug进入job方法时,发现运行job方法的实例是个普通实例而不是个代理对象,因此无法实现aop增强
解决办法:
在doJob中调用AopContext.currentProxy()获取当前的代理对象,在代理对象上调用job方法
@Transactional public void doJob() { AAAService proxy = (AAAService) AopContext.currentProxy(); EXECOTOR.execute(() ->proxy.job()); } @Transactional public void job(){ //db operation }
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- 使用spring AOP事务的时候报错的原因
- Spring aop——前置增强和后置增强 使用注解Aspect和非侵入式配置
- Spring使用AOP方式管理事务
- 十三、使用SpringAOP进行事务控制改进第九节动态代理的方式
- spring中的切点(AOP)和事务(ACID)的结合使用 spring.xml的配置
- Spring(12):使用注解(@AfterThrowing/@After/@Around)实现AOP异常增强与实例
- Spring AOP使用配置介绍(一):增强的配置
- 使用Spring的声明式事务----AOP方式
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- SSM-Spring-11:Spring中使用代理工厂Bean实现aop的四种增强
- Intellij IDEA中Spring配置aop增强事务 出现BeanCreationException异常处理方法
- SpringAOP整合Hibernate并使用事务(模拟买书的过程)
- Spring 下事务管理-使用AOP @Transactional注解管理
- spring 声明式事务、异步调用、AOP灯增强类功能 失效问题
- spring学习笔记(23)基于tx/aop配置切面增强事务
- 关于使用Spring AOP 环绕性增强出现异常影响业务流程的问题
- spring声明式事务【使用AOP】
- spring使用AOP技术对DAO层操作进行增强功能
- 【SpringBoot系列3】SpringBoot使用事务和AOP