基于Spring manual,
代理对象的构造函数将被称为两次。这是一个 CGLIB代理模型的自然结果,即子类 为每个代理对象生成。对于每个代理实例,两个 创建对象:实际代理对象和实例 实现建议的子类。
我有一个会话范围的类。我观察到构造函数在应用程序启动期间第一次被称为 ,即使没有HTTPSession。第二次是在创建HTTPSession期间。如果有会话,我怎么能用ScopedProxyMode.TARGET_CLASS
延迟bean实例化?我尝试使用@Lazy
注释,但没有效果。
@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class WorkspaceImpl implements Workspace, Serializable {
答案 0 :(得分:1)
您可以使用CGLIB代理的副作用,或者通过使目标类实现使用JDK动态代理的接口(如果您拥有该类)来更改为ScopedProxyMode.INTERFACE
。在https://stackoverflow.com/a/10664208/418439