[英]how do i get @Service bean by its default qualifier bean name in spring
我有很多ServiceImpl bean但我想通過它的默認名稱來訪問特定的bean
class SuperServiceImpl {}
class UserServiceImpl extends SuperServiceImpl {}
class PlaceServiceImpl extends SuperServiceImpl {}
public SuperServiceImpl getServiceImpl(String qualifierName) {
// if qualifierName="userServiceImpl"
// return UserServiceImpl
}
我試圖實施以下解決方案
但是我沒有在ApplicationContext
引用上獲得getBean()
方法。
return applicationContext.getBean(qualifierName, SuperServiceImpl.class)
您可能希望為SuperServiceImpl
定義一個接口並使用return applicationContext.getBean(qualifierName, SuperService.class)
,尤其是如果您有多個實現。
當然,為了完成這項工作,您需要正確定義bean:
bean
元素的id
屬性 @Bean
批注的name
屬性覆蓋它 找到最簡單的解決方案
1)我自動連接了ApplicationContext
2)將默認限定符名稱傳遞給方法getBean(defaultQualifierName)
而已..
謝謝你們幫助我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.