簡體   English   中英

CDI @Inject Instance @Any-但是實例永遠不會填充實例

[英]CDI @Inject Instance @Any - But instance never populated with instances

為什么“實例”從不遍歷任何實現? 我想念什么?

JBoss EAP 6.3.0.GA(AS 7.4.0.Final-redhat-19)

public interface Simple { }
public class SimpleA implements Simple { public SimpleA() { } }
public class SimpleB implements Simple { public SimpleB() { } }
public class SimpleUser {
    @Inject @Any Instance<Simple> instance;

    @PostConstruct public void init() {
        for (final Simple simple : instance) {
            System.out.println(simple);
        }
    }
}

萬一它對其他人有幫助,我也會使用Deltaspike 1.5.2並遇到相同的問題(如果刪除Deltaspike,我將不再遇到問題)。

就我而言,添加生產者方法並不能解決問題。 環顧四周后,我的BeanProvider可以解決問題,但遠非優雅。

https://deltaspike.apache.org/documentation/core.html#BeanProvider

我不得不打電話

List<MyServiceInterface> myServiceList = BeanProvider.getContextualReferences(MyServiceInterface.class, false, false);

可能有更好的方法。 我注意到Deltaspike默認情況下會啟用一堆擴展程序,但是找不到有關如何禁用我不使用的擴展程序的文檔,因為我懷疑可能是導致此問題的原因。

暫無
暫無

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

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