【发布时间】:2015-10-13 10:05:46
【问题描述】:
我的印象是,每当一个类实现一个接口时,就会创建基于 JDK 的代理。
我有一个 bean,它实现了一个带有 prototype scope 的接口,它被注入到一个具有 singleton 范围的 bean 中。我尝试使用 proxyMode = ScopedProxyMode.INTERFACES 创建了 JDK 代理,这是正确的,但是当我厌倦了 proxyMode = ScopedProxyMode.TARGET_CLASS 时,即使我的 bean 实现了一个接口,也会创建基于 CGLIB 的代理。
什么时候发生
proxyMode = ScopedProxyMode.TARGET_CLASS
和
proxyMode = ScopedProxyMode.INTERFACES
它们之间有什么区别?什么时候用哪个?
我还有一个问题是将原型 bean 注入单例 bean 的正确方法是什么?
【问题讨论】:
-
您告诉框架要做的就是始终创建基于类的代理,从而创建基于 cglib 的代理。