Spring声明式事务无法管理new Thread线程解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring声明式事务无法管理new Thread线程解决方案相关的知识,希望对你有一定的参考价值。

new Thread(new Runnable() {
				@Override
				public void run() {
					// spring无法处理thread的事务,声明式事务无效
					DefaultTransactionDefinition def = new DefaultTransactionDefinition();
					def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
					PlatformTransactionManager txManager = ContextLoader.getCurrentWebApplicationContext().getBean(PlatformTransactionManager.class);
					TransactionStatus status = txManager.getTransaction(def);
					
					try {
						processEachPlan(learn);
						txManager.commit(status); // 提交事务
					} catch (Exception e) {
						Logger.info("异常信息:" + e.toString());
						txManager.rollback(status); // 回滚事务
					}
				}
			}).start();


本文出自 “13165304” 博客,请务必保留此出处http://13175304.blog.51cto.com/13165304/1952201

以上是关于Spring声明式事务无法管理new Thread线程解决方案的主要内容,如果未能解决你的问题,请参考以下文章

什么叫做spring的声明式事务

Spring学习8-Spring事务管理(AOP/声明式式事务管理)

spring声明式事务管理

Spring声明式事务管理

Spring 框架学习---- 声明式事务管理

9.spring:事务管理(下):声明式事务管理