在 EJB 容器中选择 class

Choice of a class inside an EJB container

我有一些关于 EJB 的基本问题(根据 EE 7)。

这是一个 class 层次结构:

public class Class1 {};
public class Class2 extends Class1 {};
public class Class3 extends Class1 {};
public class Class4 extends Class3 {};

我想用 Class4 制作一个 EJB。所以,

  1. 您可以简单地将 Class4 转换为 EJB。只需使用 @Stateless 对其进行注释以创建无状态 EJB,如果您想在不声明接口的情况下公开其方法,则使用 @LocalBean 对其进行注释。

  2. Class1是抽象的还是具体的都无所谓

  3. 如果你把Class1变成一个EJB,不会影响它继承的类。但是Class1在这种情况下不能是抽象的。

  4. 呃...是...?

  5. 在某些 EJB 是消息驱动 Bean 的情况下,您可以使用 JMS。但是,如果您的 EJB 是 SFSB 的 SLSB,它们将通过同一容器上的普通 java 调用进行通信,或者如果它们不在同一容器上,则使用 RMI。 CDI 可用于获取 EJB 的实例 (@Inject),因为 EJB 是 CDI bean。但是您也可以使用基本的 DI 来实现 (@EJB)