您的位置:首页 > 编程语言 > Java开发

Spring中的aop:scoped-proxy

2014-06-04 11:20 281 查看
     首先看一下Spring文档上的两个例子对比: 

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>
<bean id="userManager" class="com.foo.UserManager">

    <property name="userPreferences" ref="userPreferences"/>
</bean>

 

<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>

       前一个例子没有使用<aop:scoped-proxy/>,并且userManager是singleton,所有userManager仅被初始化一次,并且其属性userPreferences也仅被注射一次。当session失效后,userManager仍将保留userPreferences实例。但后一个例子则不一样,userManager的属性userPreferences指向的是com.foo.UserPreferences实例的代理,当session过期后,userManager的属性userPreferences自然也不能再使用。网上有人解释说,这个代理只随着session的创建而创建,销毁而销毁。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: