Is there a spring lazy proxy factory in Spring?

2019-02-25 03:16发布

Wicket has this device called a lazy proxy factory. Given:

<property name="foo" ref="beanx"/>

the idea is to auto-generate a proxy in place of 'beanx', and then only initialize beanx if and when something actually calls a method on it.

It seems as if this might be a core Spring capability. Is it there somewhere?

3条回答
欢心
2楼-- · 2019-02-25 03:24

Spring singleton beans, the closest thing to what you want, are created when the spring context is initialized: http://static.springsource.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes. So I believe the short answer is "no." You can implement your own scope to do this by extending the Spring classes quite easily, though.

查看更多
神经病院院长
3楼-- · 2019-02-25 03:34

See LazyInitTargetSource; that might do what you want. It requires use of lazy-init="true" on the target bean as well, though.

查看更多
forever°为你锁心
4楼-- · 2019-02-25 03:38

Spring session/request scope is implemented using the technique you describe, but it is only intended to handle transitions between scope cardinalities, not instance creation. So spring uses the same concepts, but you'd probably have to create your own implementation.

查看更多
登录 后发表回答