py网站开发每日舆情信息报送
61. Spring事务传播行为实现原理
Spring的事务信息是存在ThreadLocal中的, 所以一个线程永远只能有一个事务
- 融入:当传播行为是融入外部事务则拿到ThreadLocal中的Connection、共享一个数据库连接共同提交、回滚;
- 创建新事务:当传播行为是创建新事务,会将嵌套新事务存入ThreadLocal、再将外部事务暂存起来; 当嵌套事务提交、回滚后,会将暂存的事务信息恢复到ThreadLocal中
调用:融入
try{3.内嵌:判断ThreadLocal是否已经有Connection,有的话就说明是一个内嵌事务, 判断当前事务的传播行为融入:不会创建Connection,返回事务状态信息(TransactionInfo.newTransaction=false