spring 事务总结

一、在默认代理模式下,只有当目标方法被外部类调用,才能被spring的事物拦截器拦截,在同一类中的两个方法调用是不会被拦截器拦截,也就事务不会生效,问题原因分析其aop 原理可知。

原理:spring 在bin的实例化过程中,发现当前类符合aop拦截规则,则会为C其生成代理类对象B,并将代理类对象B依赖注入到入口调用类A类对象中,当A调用C时,就会由代理类B处理,这时如果C中出现异常,则B就会执行回滚操作,也就是外部类调用生效的解释,如果是一个类中的两个方法就不存在代理类处理的逻辑,所以也就拦截不到,从而导致事务失效。

 

posted @ 2021-03-13 23:06  狭路相逢智者胜  阅读(45)  评论(0编辑  收藏  举报