我有一个工厂模式实现。
class FactoryValidator {
@EJB
FieldValidator fv;
@EJB
MethodValidator mv;
public Validator getValidator(VType type){
Validator v = null
switch(type) {
case FIELD:
v = fv; break;
case METHOD:
v = mv;break;
}
return v;
}
}
是否可以像上面那样返回EJB引用?或者有更好的方法来处理这个问题吗? 我知道你可以直接从case语句中返回EJB。但我想这不是一个好习惯。
思想?
答案 0 :(得分:0)
请注意,您将返回对stub的引用,而stub不是直接指向EJB bean对象,而是指向JNDI树上的元素。在我看来,这不是一个坏习惯,但你必须要小心,因为:
当我在CDI服务中需要EJB计时器时,我使用了这种解决方案,并且运行良好。