本文介紹了Spring Autwire會話如何確定Bean的作用域?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我當前正在使用會話對象。在服務(wù)層,我正在自動裝配會話作用域的Bean。我想知道春天是如何做到這一點的?更有趣的是,即使我使用FINAL關(guān)鍵字并使用構(gòu)造函數(shù)注入,Spring仍然能夠自動綁定對象。
@Service
public class SomeServiceImpl implements SomeService {
private final UserSessionDetails userSessionDetails;
@Autowired
public SomeServiceImpl(final UserSessionDetails userSessionDetails) {
this.userSessionDetails = userSessionDetails;
}
}
我的另一個問題是:在服務(wù)層使用會話對象是一種很好的做法嗎?或者我可以在控制器和服務(wù)層中自由使用這些對象嗎?
推薦答案
我想知道Spring是如何做到這一點的?
SomeServiceImpl
是單例,所以它應(yīng)該在啟動時組裝。組裝Bean意味著向其注入所有必需的依賴項。雖然有些考生的范圍可能與單身人士范圍不同,但仍需提供。對于這樣的Bean,Spring創(chuàng)建了代理。在出現(xiàn)某些上下文之前,代理基本上是一個無意義的包裝器。
如果我使用FINAL關(guān)鍵字并使用構(gòu)造函數(shù)注入,則Spring仍然能夠自動連接對象。
Spring支持基于構(gòu)造函數(shù)的注入。它檢查簽名并查找要注入的候選項;字段的修飾符并不重要。
在服務(wù)層中使用會話對象是一種良好的做法嗎?或者我可以在控制器和服務(wù)層中自由使用這些對象嗎?
只要服務(wù)是面向Web且與會話相關(guān)的,您就可以自由地向其注入會話范圍的Bean。
這篇關(guān)于Spring Autwire會話如何確定Bean的作用域?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,