春豆別名的用法
回答
我看到的用法如下:給定接口(SomeBean
)有兩個實例:一個用於環境A,另一個用於環境B.因此,您定義了兩個bean:一個名爲「someBeanForA」,另一個名爲「someBeanForA」另一個名爲「someBeanForB」。
SomeBean必須注入的bean不知道他們必須使用哪一個:它取決於環境。所以他們使用別名:
@Autowired
@Qualifier("someBeanAlias")
private SomeBean someBean;
當部署到環境A時,XML文件中的別名指向someBeanA。在部署到環境B時,XML文件中的別名指向someBeanB。
我覺得reference documentation解釋非常好:
在bean定義本身,您可以通過使用由id指定了一個名稱的組合爲 豆提供多個名稱, 屬性以及name屬性中的任意數量的其他名稱。這些 名稱可以等同於同一個bean的別名,並且在某些情況下可用,例如允許應用程序中的每個組件使用 特定於該組件本身的bean名稱來指代公共依賴項。
但是,指定bean實際定義的所有別名不是 總是足夠的。有時候需要爲其他地方定義的bean引入一個 別名。在大型系統中,這種情況通常是 ,其中配置分配給每個子系統,每個子系統都有自己的一組對象定義。在基於XML的 配置元數據中,可以使用元素來完成 這個。
一個特定的示例可能是您必須在單點登錄模塊中爲多個應用程序定義驗證入口點。您可以在單個Spring Bean定義中定義它,並將其別名在您的特定應用程序中,以將其用作身份驗證入口點。
springframework docs本身有一個例子。
作爲具體示例,考慮組件A在其XML部分中定義名爲componentA-dataSource的 Data bean的情況。 然而,組件B將在其XML片段中將數據源稱爲 componentB-dataSource。主應用程序MyApp定義了它自己的XML片段,並彙編了所有三個片段的最終的應用程序上下文,並且希望將 作爲myApp-dataSource引用到DataSource。
我們已經在我們的項目中使用別名,所以我們用這個的原因是因爲
對於使用的情況下,該架構是這樣的:豆ID在一個數據庫主表列提及。所以當流被調用時,它讀取表並使用列中提供的相同名稱加載bean。 bean定義存在於一個jar中的applicationContext中,我們不能改變它。
現在對於某些實例,我們必須更改表列中的bean名稱(以提供更好的命名約定),但由於我們不能更改上下文bean定義,我們使用別名將新名稱映射到較舊的bean id 。
這也有助於多環境的情況。如果存在別名,我們不必運行腳本來更新每個環境中的列值。
- 1. 春豆別名在JavaConfig
- 2. 匿名春豆bean
- 3. Jdbc無法使用的春豆
- 4. 春豆銷燬方法
- 5. 春季豆執法範圍
- 6. 春豆容器
- 7. 春豆範圍
- 8. 嘲笑春豆
- 9. 春:豆混淆
- 10. 春豆創作
- 11. 春豆檢測
- 12. 春豆裁判
- 13. 豆不盡,春
- 14. 春豆和類
- 15. 春錯誤創建名稱爲豆「org.springframework.aop.config.internalAutoProxyCreator
- 16. 在春天用豆列表
- 17. 春天 - 注入通用豆
- 18. 春掃描儀豆
- 19. 春錯誤時,豆
- 20. 春豆是什麼?
- 21. 春豆和線程
- 22. 春季複合豆?
- 23. 春天 - 使用別名vs名字
- 24. 春季數據CrudRepository作爲方法豆
- 25. 春天破壞法+請求範圍豆
- 26. 春 - 無法自動裝配豆
- 27. 春天的OAuth豆異常
- 28. 春天的單身豆
- 29. 春SingletonBeanFactoryLocator的豆破壞
- 30. 春季引導豆注入豆注入方法
我認爲這與使用配置文件時的別名用法有關。 – Newbie
我選擇你的答案根據下面的評論... – Newbie