Wicket将这个设备称为懒惰代理工厂。给出:
<property name="foo" ref="beanx"/>
这个想法是自动生成一个代理来代替'beanx',然后只有在实际调用某个方法时才初始化beanx。
好像这可能是Spring的核心功能。它在某处吗?
答案 0 :(得分:3)
见LazyInitTargetSource;这可能会做你想要的。但是,它也需要在目标bean上使用lazy-init =“true”。
答案 1 :(得分:0)
弹簧上下文初始化时,会创建与您想要的最接近的Spring单例bean:http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes。所以我认为简短的回答是“不”。但是,您可以通过非常轻松地扩展Spring类来实现自己的范围。
答案 2 :(得分:0)
Spring会话/请求范围是使用您描述的技术实现的,但它仅用于处理范围基数之间的转换,而不是实例创建。所以spring使用相同的概念,但您可能必须创建自己的实现。