1
由于EJB 3.1,bean不需要有一个本地接口,而且我通常不使用一个:EJB 3.1 - 为什么无状态bean必须通过它的接口注入(如果有的话)?
@Stateless
public class MyService(){
public void buisnesssMethodA(){
...
}
public void buisnesssMethodB(){
...
}
}
,在我的CDI豆我只是做
@Inject
private MyService myService;
这是简单而简单,而且工作得很好。
现在我最近发现了一些东西。
想象一下,我需要一个接口,它代表我业务方法的子集。
public interface MyInterface{
void businessMethodA();
}
现在,如果我让我的无状态的bean实现了这个接口,JBoss的部署失败,并引发错误
WELD-001408 Unsatisfied dependencies for type [MyService] with qualifiers [@Default] at injection point [[field] @Inject
所以我相信我遵守以下规则:
如果一个无状态bean没有接口,它可以使用这个类来注入。如果它实现了一个接口,它必须使用接口注入。
这里是我的问题:
- 这是规则是否正确?
- 如果是这样,它是由EBJ规范定义的?
- 这个限制的原因是什么?
我不能转向你的排队,但如果你喜欢一个解决方法,你可以尝试'@ LocalBean'注释。这帮助我处于类似的情况。 – Tom 2014-09-04 10:56:07
@Tom正是我需要的感谢! – phoenix7360 2014-09-04 12:05:14