了解春天代理

时间:2015-05-12 12:39:35

标签: java spring proxy

The Spring documentation提供了以下示例,向我们展示了我们需要定义aop的原因:范围会话,请求等bean中显式的scoped-proxy。

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">
    <aop:scoped-proxy/>
</bean>
<bean id="userManager" class="com.foo.UserManager">
    <property name="userPreferences" ref="userPreferences"/>
</bean>

我们需要代理,因为对于userPreferences bean的每个请求,我们都希望将其委托给实际的会话范围的bean实例。很清楚。但是文档还说这对于singletone/prototype范围的bean来说是一种愚蠢的行为。

考虑以下示例:

<bean id="userPreferences" class="com.foo.UserPreferences" />
<bean id="userManager" class="com.foo.UserManager">
    <property name="userPreferences" ref="userPreferences"/>
</bean>

为什么在singletone - 作用域bean的情况下我们需要代理?不注入和调用代理会导致一些性能开销吗?

问题 :对于性能问题,我们是否可以避免在singletone - 作用域bean的情况下注入代理并注入实际的bean实例?

0 个答案:

没有答案