当我在这里说“EJB”时,我指的是 EJB 3.x!
我是 EJB 的新手,想知道如何最好地将我的所有业务逻辑映射到不同的 bean。在一个极端情况下,您可以 KISS 并且只拥有一个单一的 EJB,它具有处理 100% 应用程序业务逻辑的无数方法。在另一个极端,您可以将业务逻辑划分到函数级别 ( List<User> getUsersFromMars()
),并拥有由 1 个包、1 个类和 1 个方法组成的无数 EJB:
Extreme #1:
my-ejb.jar/
com.me.myorg.MonolithicBean
List<User> getUsersFromMars();
List<User> getUsersFromVenus();
//... a bazillion methods
Extreme #2:
my-mars-ejb.jar/
com.me.myorg.MarsBean
List<User> getUsersFromMars();
my-venus-ejb.jar/
com.me.myorg.VenusBean
List<User> getUsersFromVenus();
//... a bazillion EJBs with 1-and-only-1 method each
显然,我认为最佳实践规定了这两个极端之间的某种中间策略。所以我问,Java/Oracle 对将应用程序的业务逻辑分解为 bean 有什么看法,以及如何在正确的级别(EJB、包、类或方法)将它们模块化,以便可重用、可扩展和安全?