spring事务传播,失效问题
@Transactional
public void insert(){
jdbcTemplate.execute();
//此种调用,insert2的@Transactional没有作用。因为insert2是普通对象调用,故不会通过AOP进行事务操作
insert2();
}
@Transactional(propagation=Propagation.NEVEER)
public void insert2(){
}
解决方案,自我注入,注入的是代理对象,利用注入的对象,再调用insert2(注意,不能this调用insert方法,因为this就是普通对象)
总结,只有代理对象,调用才会起到事务控制的作用