注入多个 EJB
Injecting Multiple EJBs
我有一个工作流程 class,其中我使用 @EJB 标记在 class 的顶部注入几个 EJB:
@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class WorkflowBean {
@EJB
private BeanOne beanOne;
@EJB
private BeanTwo beanTwo;
@EJB
private BeanThree beanThree;
@EJB
private BeanFour beanFour;
@EJB
private BeanFive beanFive;
@EJB
private BeanSix beanSix;
是否有更好、更有条理的方式在我的代码顶部注入这些代码,也许以某种方式在一行中?代码运行得非常好,但我想在代码完成时再添加几个 bean,我觉得它开始导致我的代码看起来很混乱。
这样做本质上没有错,但可能会有点混乱。
如果您可以根据业务行为识别行为并将其组合在一起,可能会减少@EJB 注释的数量。例如,如果 beanOne、beanTwo 和 beanThree 都与用户管理相关,您可以创建一个 userManagement bean,将它们注入到那里,然后只将一个 userManagement bean 注入到您的工作流 bean 中。它也可能对 self-documentation 有一点帮助。
恕我直言,您的工作流 bean 几乎应该只是调用封装业务逻辑的其他 bean,而不是尝试在此处全部定义。
我有一个工作流程 class,其中我使用 @EJB 标记在 class 的顶部注入几个 EJB:
@Stateless
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class WorkflowBean {
@EJB
private BeanOne beanOne;
@EJB
private BeanTwo beanTwo;
@EJB
private BeanThree beanThree;
@EJB
private BeanFour beanFour;
@EJB
private BeanFive beanFive;
@EJB
private BeanSix beanSix;
是否有更好、更有条理的方式在我的代码顶部注入这些代码,也许以某种方式在一行中?代码运行得非常好,但我想在代码完成时再添加几个 bean,我觉得它开始导致我的代码看起来很混乱。
这样做本质上没有错,但可能会有点混乱。
如果您可以根据业务行为识别行为并将其组合在一起,可能会减少@EJB 注释的数量。例如,如果 beanOne、beanTwo 和 beanThree 都与用户管理相关,您可以创建一个 userManagement bean,将它们注入到那里,然后只将一个 userManagement bean 注入到您的工作流 bean 中。它也可能对 self-documentation 有一点帮助。
恕我直言,您的工作流 bean 几乎应该只是调用封装业务逻辑的其他 bean,而不是尝试在此处全部定义。