关闭

spring2.0中的session作用域被注入

454人阅读 评论(0) 收藏 举报
样例1:

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

第一个例子: 如果session失效,userManager仍将保留userPreferences实例!
userManager直接将userPreference的引用拷贝了一份到自己的特定地址上!销毁了原来的实例,而拷贝后的实例依赖存在!

样例2:

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

加了<aop:scoped-proxy />,这个的作用是代理这个实例

第二个例子:     session失效,则userPreferences失效. 单例的userManager保存的是userPreference的代理实例!
这个代理实例不是singleton的,也不是跟随着userPreferences的.它是随着session创建而创建... 如果session销毁,代理实例就无法访问到userPreference了! 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:111469次
    • 积分:1442
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:116篇
    • 译文:0篇
    • 评论:18条
    最新评论