默认情况下,Spring事务通过使用代理处理Spring Bean来工作,该代理处理事务和异常。
method2()从调用时
method1(),你将完全绕过该代理,因此它无法启动新事务,并且实际上是method2()从与调用打开的事务相同的事务中进行调用
method1()。
相反,当你从中调用另一个注入的bean
method1()的方法时,实际上是在事务代理上调用方法。因此,如果此外来方法用REQUIRES_NEW标记,则代理将启动新事务,并且你可以捕获异常
method1()并恢复外部事务。



