如何在Spring配置文件中混合使用CGLIB和JDK代理?

这个线程与我在这里遇到的有关访问受建议类的受保护方法的需求有关 。 我正在使用Spring 3.0.6,并创建了一个Spring分析方面,我正在使用JDK代理应用于大量的bean。

但是,由于需要访问一个特定bean中的受保护方法,我想使用CGLIB建议它。 所有其他bean我想继续使用JDK Proxies。

我使用了注释和xml配置的混合,但这个特定方面是在XML配置中定义的。

我知道有标签,但据我所知,这适用于所有方面。

无论如何要定义单个方面来使用CGLIB吗?

              

我试图将配置拆分为两个,并且对于一个配置指定target-class="true"而另一个target-class="false" ,但它似乎在那时将CGLIB应用于所有人。

有没有办法实现这个目标?

谢谢,

埃里克

不幸的是,无论是全部bean还是没有bean都使用CGLIB,如果你在一个地方使用目标类的代理,它就会强制在所有其他地方。 引用8.6官方文件的代理机制 :

注意

多个部分在运行时折叠为单个统一自动代理创建器,它应用指定的任何部分(通常来自不同的XML bean定义文件)的最强代理设置。 这也适用于元素。

要明确:在上使用'proxy-target-class="true"'元素将强制使用CGLIB代理他们三个