Spring 使用 CGlib 创建代理,尽管类实现了多个接口

问题描述 投票:0回答:1

在我的应用程序中,我有一个实现接口 A 和接口 B 的类 X。我使用 Spring AOP 和 AspectJ 实现了一个方面,并在接口 A 的每个方法上都有一个切入点。

在调试应用程序时,我注意到 Spring 使用 CGLIB 而不是 JDK 动态代理创建代理。这种行为的原因是什么?因为类 X 实现了接口,所以不应该将代理创建为动态代理吗?我不明白。

spring proxy spring-aop cglib
1个回答
0
投票

您可能使用 Spring Boot,而不是普通的 Spring。即使对于接口代理,引导也默认为 CGLIB,需要覆盖它。更具体地说,您需要将其放入您的

application.properties
:

spring.aop.proxy-target-class=false

另请参阅我的回答:

© www.soinside.com 2019 - 2024. All rights reserved.