我幾次閱讀關於這個主題的春季文檔,但有些東西對我來說還不清楚。 文檔狀態:Spring會話範圍的bean作爲原型bean中的依賴關係嗎?
如果要注入(例如)HTTP請求範圍的bean到另一個bean,你必須到位的作用域bean注入一個AOP代理。也就是說,您需要注入一個代理對象,該對象公開與作用域對象相同的公共接口,但也可以從相關作用域(例如,HTTP請求)中檢索真實的目標對象,並將方法調用委託給實際對象。
配置例子如下:
<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>
這裏,的UserManager豆的作用域確定爲單例。所以,我想知道這個代理的東西是否應用只有單身作用域的豆,也就是說,如果你想注入web作用域bean到單身bean,或者它也適用於原型豆?例如,如果userManager被限定爲原型?
我在問這是因爲我看到一些代碼將會話範圍的bean注入到沒有aop代理的原型中,但我不確定這是否正確......特別是那些在某些web中的DAO bean -app,範圍爲會話,並且它們被注入到用於多用戶環境的原型範圍的控制器中。這是正確的路嗎?一般情況下應該如何將DAO/Service bean作用於web-app環境?
任何想法,將不勝感激。