1

我用

<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对于我定义的每个存储库。是不能一起用,还是可以做?

4

3 回答 3

3

如果您需要 cglib 样式代理,则必须从存储库接口中删除 @Transactional 注释,并将其移动到调用它的服务/s 类/es。

CGLIB 样式扩充直接作用于它扩充的类。接口无所谓。

于 2013-04-22T13:53:43.077 回答
0

不能建议最终方法,因为它们不能被覆盖。也许您的父类之一具有最终方法,或者您的类是最终的。

于 2013-02-02T06:56:48.303 回答
0

其他选择是摆脱

proxy-target-class="true"

通过在所有 AOP 位置引入适当的接口(假设在服务层)

于 2014-08-28T07:58:44.713 回答