首页 > 代码库 > Spring声明式事务无法管理new Thread线程解决方案

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线程解决方案