我有抽象 EJB 和它的两个子类。在我的托管 bean 中,我希望有一个抽象类型的字段,并根据传递给页面的参数以及任一子类的实例对其进行初始化。我想没有办法使用注入来做到这一点,我应该使用良好的旧 JNDI 查找......或者也许有一种方法可以重新设计它以能够使用注入?
修订我想我不能定义 EJB 抽象,但这并没有改变这种情况。即使 AbstractEJB 不是抽象的,我也只想实例化它的子类。
@Stateless
public abstract class AbstractEJB {
public abstract void method1();
}
@Stateless
public class Implementation1 extends AbstractEJB () {
public void method1() { ... }
}
@Stateless
public class Implementation2 extends AbstractEJB () {
public void method1() { ... }
}
@ManagedBean
public class MyManagedBean {
@EJB
AbstractEJB myEJB; //has to be initialized with either Implementation1 or Implementation2 instance
}