Joh*_*nak 51 java spring transactions interface
放置@Transactional注释的最佳做法是什么?我应该注释接口方法还是实现?
El *_*apo 44
在我看来,这完全取决于您的应用程序架构.这取决于你如何代理你的课程.如果您将应用程序设置为proxy-target-class='true'(在应用程序上下文中,那么@Transactional如果您注释界面,则不会获取您的信息.
查看The Spring Docs - "提示"了解更多信息.
Spring建议您只使用@Transactional注释来注释具体类(以及具体类的方法),而不是注释接口.您当然可以将@Transactional注释放在接口(或接口方法)上,但这只能在您使用基于接口的代理时按预期工作.Java注释不是从接口继承的事实意味着如果您使用基于类的代理(proxy-target-class ="true")或基于编织的方面(mode ="aspectj"),那么事务设置是代理和编织基础设施无法识别,并且该对象不会被包装在事务代理中,这将是非常糟糕的.
Boz*_*zho 33
好问题.我总是把它放在实施中.也许是因为它是一个实现细节,而不是一个抽象.
您可能希望不同的实现具有不同的事务行为.
El Guapo指出,除此之外,与代理策略相关的接口可能会产生更多问题.
| 归档时间: |
|
| 查看次数: |
14433 次 |
| 最近记录: |