2012-08-28 28 views
8

是CDI的新手,我想知道備選方案和 限定詞的實際區別。CDI:@alternative vs @Qualifiers

Weld reference

,它指出:

4.3。限定符註釋

如果我們有多個實現特定Bean類型的bean,則 注入點可以使用限定符註釋準確指定應注入哪個bean 。

但同時解釋的替代品,它是說:

4.7。替代品

替代品是其實施特定於特定客戶端模塊或部署方案的bean。

如果我理解正確,@Qualifier定義目標bean的哪些實現被注入注入點。

@Alternative描述了在部署過程中依賴客戶端的一個願望,即關於標準的一個備用標記(「@default」我的意思是)是否被注入注入點。

是對嗎?

+0

這是正確的。 – dcernahoschi

回答

2

是的,沒錯。您可以將限定符想象爲您在開發時設置的基本編織,在源代碼中使用註釋。

替代品允許您在執行時使用beans.xml文件覆蓋此文件 - 一個簡單的部署工件。

一個典型的場景是針對不同的環境使用不同的beans.xml,從而爲不想在本地/集成環境中執行的組件啓用模擬替代方案。