spring - Spring代理默认实现
问题描述
我想我对spring如何使用带有注释的代理概念有一个很好的了解,@Transactional
但我找不到任何关于“默认”实现的信息。基本上我正在寻找的是包装原始方法调用的代码(来自包装对象的方法)。
解决方案
没有默认实现之类的东西,因为它完全取决于实现您添加@Transactional
注释的方法的类。如果该类继承自接口,则将使用JDK 动态代理。如果没有,那么将使用一个名为 CGLIB 的外部库来创建代理。动态代理将创建一个实现您的目标类也实现的所有接口的代理,而 CGLIB 将创建一个扩展您的目标类的代理。
还要确保阅读这个关于动态代理和 CGLIB 代理之间区别的SO 问题,因为它也包含有价值的信息。
推荐阅读
- kubernetes - 无法从一个 pod 向另一个 pod 的服务发出 Vue Axios 请求,但我可以从另一个 pod 向该服务卷曲
- django - Django 'NoneType' 对象不可调用
- css - 使用 Tailwind 在 div 内滚动不起作用
- javascript - 表单输入未更新 API 获取
- ethereum - 以太坊 - 更新配置属性
- python-3.x - 错误信息 FileNotFoundError: [Errno 2] No such file or directory
- c++ - 以度为单位定义一个 boost::units 角度
- c - 无法解决 Visual Studio 中的 LNK 2001 错误
- react-native - Appium desktop v1.20.0 iOS 看不到基于 react-native 构建的屏幕子组件中的元素及其 id?
- reactjs - 如何使用 Jest 部分模拟自定义反应钩子?