注入多个 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,而不是尝试在此处全部定义。