Spring之所以可以对开启@Transactional的方法进行事务管理,是因为Spring为当前类生成了一个代理类,然后在执行相关方法时,会判断这个方法有没有@Transactional注解,如果有的话,则会开启一个事务。
但是,上面同一个类中A调用方式时,在调用B时,使用的并不是代理对象,从而导致this.B(i)时也不是代理对象,从而导致@Transactional失败。所以,Spring 从同一个类中的某个方法调用另一个有注解(@Transactional)的方法时,事务会失效,些事务的时候一定要注意到这一点。
好文章!!!!!!!!!!
没有用的,只能管30天,30天后又失效