Enterprise JavaBeans
EJBの簡単な例を以下に示す。
上記のコードは、O/Rマッピングを使用して顧客 (Customer) オブジェクトを永続化(DBに保存)するサービスクラス(セッションBean)である。EJBが永続コンテキスト (Persistence context) の管理を行うため、実際にデータを登録するaddCustomer()メソッドは、デフォルトでトランザクション管理されたスレッドセーフなメソッドとなる。上記のコードは、EJBのビジネスロジックと永続化に焦点を当てたもので、EJBの特徴的な機能の数々は使用していない。
こうしたEJBのセッションBeanは、以下のように他のクラスから呼び出して使用することができる。以下はWeb層からの呼び出し例である。
上記のコードは、EJBのセッションBeanを@EJBアノテーションにより注入した、JavaServer Faces (JSF) の管理Bean (Managed Bean) である。今度のaddCustomer()メソッドは、UIコンポーネントにおけるボタン操作などを表現している。EJBのセッションBeanとは逆に、この管理Beanにはビジネスロジックに関するコードも永続化に関するコードも含まれていないが、EJBのコードを呼び出すことでそうした処理を実現している。EJBはプレゼンテーション層に依存せず、それらの役割は管理Beanが担う。