我想我对spring如何使用代理概念与@Transactional
注释有一个很好的想法,但我找不到任何关于"default"实现。基本上我要找的是包装原始方法调用的代码(来自包装对象的方法)。
没有默认实现,因为它完全取决于实现您添加@Transactional
注释的方法的类。如果这个类继承自一个接口,那么将使用JDK动态代理。如果没有,那么将使用一个名为CGLIB的外部库来创建代理。动态代理将创建一个代理来实现目标类也实现的所有接口,而CGLIB将创建一个代理来扩展目标类。
还要确保阅读关于动态代理和CGLIB代理之间区别的SO问题,因为它也包含有价值的信息。