簡體   English   中英

獲得給定類型的春豆的最佳實踐

[英]Best practice to get spring beans of given type

我已經閱讀了多個stackoverflow問題,認為applicationContext.getbean是一個壞主意。

為什么Spring的ApplicationContext.getBean被認為是不好的?

我想知道春季是否有更好的掃描給定類型的bean的方法。

我的用例是在春季啟動期間獲取給定類型的bean,並在這些bean上調用一些方法。

據我了解,只有兩種方法可以做到這一點。

  1. 可以將應用程序上下文自動裝配到spring bean中,並使用appContext.getBeansOfType。
  2. 鈎上一個后處理器並過濾給定類型的bean

    if(類型的bean實例)

我覺得僅掛接一個后處理器來處理一種類型的bean並不是一個好主意。 因為那樣會攔截所有的bean初始化。

誰能提出解決我的用例的更好方法? (給定類型的getBean)

Spring對List自動連線參數有特殊處理。 如果您指定像這樣的bean:

@Component
class MyBean {
  @Autowired
  MyBean(List<MyType> listOfMytype) {

  }
}

然后spring將不會在applicationContext中搜索List<MyType>類型的bean,而是搜索所有實現MyType bean並將其注入為列表( 如果您實際上想注入列表,可能會很爛 )。 這樣就得到了給定類型的所有bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM