0
我有一堆依賴寫成快速二進制web服務(又名Ejb3.1)。下面是服務delcaration:CDI是否爲默認製作者提供api?
@Remote
public interface MyService {...}
你會注入一個EJB成servlet或託管bean的語法如下:
@EJB
MyService myService;
我不想然而使用@EJB
注射。我想用普通的香草CDI:
@Inject
MyService myService;
一種方式來實現,這將是爲每個EJB創建@Produces
方法:
@Produces MyService produceMyService(InjectionPoint ijp){
//jndi lookup for MyService interface
}
然而,InjectionPoint能夠給你所有您需要的信息,例如目標類名稱(本例中爲MyService)。
在CDI有沒有辦法做這樣的事情?如果所需的注入點不能以其他任何方式完成,我想最後調用這個生產者。
@Produces Object produce(InjectionPoint ijp){
Class ejbInterface = ijp.getType();
//jndi lookup for ejbInterface
}
這是一個令人困惑的帖子,所以請澄清問題。萬分感謝!
是的,確實很令人困惑:)我的理解正確,你正在尋找一種方式來解決依賴的一種「本地第一,遠程只有當本地失敗「-辦法? –
是的,那太棒了。基本上是一個「全部捕獲」的依賴關係,不能以任何其他方式注入。 –