![](/img/trans.png)
[英]Bean not getting injected in EJB 3.1, only this bean has this behaviour
[英]EJB 3.1 - Why sateless bean must be injected by its interface (if there is one)?
從EJB 3.1開始,bean不需要具有Local接口,而且我通常不使用以下接口:
@Stateless
public class MyService(){
public void buisnesssMethodA(){
...
}
public void buisnesssMethodB(){
...
}
}
在我的CDI bean中
@Inject
private MyService myService;
這很容易和簡單,並且效果很好。
現在我最近發現了一些東西。
想象一下,我需要一個代表我的業務方法子集的接口。
public interface MyInterface{
void businessMethodA();
}
現在,如果我讓我的Stateless bean實現此接口,JBoss將無法部署並引發錯誤
WELD-001408 Unsatisfied dependencies for type [MyService] with qualifiers [@Default] at injection point [[field] @Inject
因此,我相信我遵守以下規則:
如果無狀態bean沒有接口,則可以使用該類將其注入。 如果實現接口,則必須使用該接口注入。
這是我的問題:
根據我對Java EE和CDI的有限了解:
希望這能回答您的問題3,並部分確認您的問題,使您從questoin 1中獲得的規則無效。盡管如此,我現在不願意回答問題2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.