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