在 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。所以,
- 是否有必要将 Class1 - 超级 class - 转换为 EJB,或者我可以简单地将 Class4 转换为 EJB?
- Class1 是抽象的还是具体的重要吗?
- 如果我将 Class1 变成 EJB,它的所有子 class 是否都变成 EJB?
- 此层次结构中的每个 class 都是 POJO 吗?
- 不管我制作了多少个 EJB,总会有一个 EJB 容器吗?
- 如果容器内有多个 EJB 运行,它们是否有必要使用 JMS 实现来进行通信或 CDI?
您可以简单地将 Class4
转换为 EJB。只需使用 @Stateless
对其进行注释以创建无状态 EJB,如果您想在不声明接口的情况下公开其方法,则使用 @LocalBean
对其进行注释。
Class1
是抽象的还是具体的都无所谓
如果你把Class1
变成一个EJB,不会影响它继承的类。但是Class1
在这种情况下不能是抽象的。
呃...是...?
是
在某些 EJB 是消息驱动 Bean 的情况下,您可以使用 JMS。但是,如果您的 EJB 是 SFSB 的 SLSB,它们将通过同一容器上的普通 java 调用进行通信,或者如果它们不在同一容器上,则使用 RMI。 CDI 可用于获取 EJB 的实例 (@Inject
),因为 EJB 是 CDI bean。但是您也可以使用基本的 DI 来实现 (@EJB
)
我有一些关于 EJB 的基本问题(根据 EE 7)。
这是一个 class 层次结构:
public class Class1 {};
public class Class2 extends Class1 {};
public class Class3 extends Class1 {};
public class Class4 extends Class3 {};
我想用 Class4 制作一个 EJB。所以,
- 是否有必要将 Class1 - 超级 class - 转换为 EJB,或者我可以简单地将 Class4 转换为 EJB?
- Class1 是抽象的还是具体的重要吗?
- 如果我将 Class1 变成 EJB,它的所有子 class 是否都变成 EJB?
- 此层次结构中的每个 class 都是 POJO 吗?
- 不管我制作了多少个 EJB,总会有一个 EJB 容器吗?
- 如果容器内有多个 EJB 运行,它们是否有必要使用 JMS 实现来进行通信或 CDI?
您可以简单地将
Class4
转换为 EJB。只需使用@Stateless
对其进行注释以创建无状态 EJB,如果您想在不声明接口的情况下公开其方法,则使用@LocalBean
对其进行注释。Class1
是抽象的还是具体的都无所谓如果你把
Class1
变成一个EJB,不会影响它继承的类。但是Class1
在这种情况下不能是抽象的。呃...是...?
是
在某些 EJB 是消息驱动 Bean 的情况下,您可以使用 JMS。但是,如果您的 EJB 是 SFSB 的 SLSB,它们将通过同一容器上的普通 java 调用进行通信,或者如果它们不在同一容器上,则使用 RMI。 CDI 可用于获取 EJB 的实例 (
@Inject
),因为 EJB 是 CDI bean。但是您也可以使用基本的 DI 来实现 (@EJB
)