ここで言う「EJB」とは、EJB 3.x のことです。
EJB は初めてで、すべてのビジネス ロジックを異なる Bean に最適にマップする方法を考えています。極端な場合、KISS を使用して、アプリケーションのビジネス ロジックを 100% 処理する膨大な数のメソッドを持つモノリシック EJB を 1 つだけ持つことができます。反対に、ビジネス ロジックを関数レベル ( 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
明らかに、ベスト プラクティスは、これら 2 つの両極端の間のある種の仲介戦略を指示するものだと思います。アプリのビジネス ロジックを Bean に分解し、それらを正しいレベル (EJB、パッケージ、クラス、またはメソッド) でモジュール化して再利用可能、スケーラブル、安全にする方法について、Java/Oracle は何と言っているのでしょうか?