我用
<tx:annotation-driven transaction-manager="transactionManager" />
<jpa:repositories base-package="com.xxwell.amkey.domain"
transaction-manager-ref="transactionManager" />
它就像一个魅力。但是,要为项目添加方面,我需要CGLIB。将上述行更改为
<tx:annotation-driven transaction-manager="transactionManager"
proxy-target-class="true" />
<jpa:repositories base-package="com.xxwell.amkey.domain"
transaction-manager-ref="transactionManager" />
导致启动上下文失败:Cannot subclass final class class $Proxy45
为我定义的每个存储库。是不是可以一起使用,还是可以一起使用?
答案 0 :(得分:3)
如果您需要cglib样式代理,那么您必须从存储库接口中删除@Transactional注释,并将其移动到调用它的service / s class / es。
CGLIB样式扩充直接在它增强的类上工作。接口并不重要。
答案 1 :(得分:0)
无法建议最终方法,因为它们无法覆盖。也许您的一个父类有最终方法,或者您的班级是最终的。
答案 2 :(得分:0)
其他选项是摆脱
proxy-target-class="true"
在所有AOP位置引入适当的接口(假设在服务层)