在CDI应用程序中使用@Alternative
生活随笔
收集整理的這篇文章主要介紹了
在CDI应用程序中使用@Alternative
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在許多情況下,您可能希望擁有一個以上版本的Bean,并將其用于不同的目的。 備用bean的典型理由是出于測試目的,其中備用bean提供模擬數據。 為了獲得實時數據,“真實” bean必須連接到的實時系統的好處是遠程,或者在測試場景中使用該時間太耗時。 因此,提供了提供靜態數據的模擬bean。
在本文中,我將建立一個示例,為購物車提供一個模擬價格清單bean。
如何設置替代的Bean實現
實際和替代bean必須實現相同的接口。 在此示例中,它們實現了PriceList接口。
public interface PriceList {String priceList(); }public class LivePriceList implements PriceList {public String priceList() {// connect to price list webservice or databasereturn "Live Price List";} }用@Alternative注釋替代bean,以將其標識為替代實現。
@Alternative public class MockPriceList implements PriceList {public String priceList() {// use hard code prices for testingreturn "Mock Price List";} }可以使用接口作為類型注入PriceList bean。
public class ShoppingCart {@Injectprivate PriceList priceList;public String ObtainPriceList(){return priceList.priceList();}}在此示例中,實際的PriceList bean在部署時將由CDI注入到ShoppingCart中。
使用替代豆
要使用替代豆你必須標明的價目表豆使用的心愿在beans.xml的文件中使用的版本。
<beans ...><alternatives><class>com.readlearncode.alternatives.MockPriceList</class></alternatives></beans>指定了備用bean的全限定名。
結論
部署應用程序后,CDI容器會將備用MockPriceList注入ShoppingCart bean。
源代碼
該示例的源代碼可以在ReadLearnCode GitHub存儲庫中找到。
翻譯自: https://www.javacodegeeks.com/2018/01/using-alternative-cdi-application.html
總結
以上是生活随笔為你收集整理的在CDI应用程序中使用@Alternative的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桌面文件彻底删除用什么方法恢复如何删除电
- 下一篇: Mac怎么投屏到电视或者投影仪电脑视频如