ステートフルセッションBeanでの実装
ステートフルセッションBeanでの実装
前回のモデルでは口座はクライアント側で生成して管理していました。ここでは銀行処理のビジネスオブジェクト内で口座を管理させるモデルを考えます。
ステートレスセッションBeanの実装ではクライアントが口座オブジェクトを生成し管理していましたが、口座をモデル内で管理するのでステートフルセッションBeanで実装します。ステートフルセッションBeanでのイメージを以下に示します。
以下に今回利用するクラス図を示します。
インターフェースには@Remoteアノテーションを定義(1)します。また、新しく口座オブジェクトを操作するメソッドが3つ追加(2)されています。ステートフルセッションBeanはライフサイクルが短いオブジェクトです。一連の処理が終了したらこのオブジェクトを削除する必要があるため、destoroyメソッドを用意(3)します。
インターフェース BankControl.java
次に実装クラスです。BankControlBeanクラスにはステートフルセッションBeanであることを示すため@Statefulアノテーションを定義します。ステートフルセッションBeanは生成したクライアント専用となるため、クライアントとの会話情報を保持することが可能です。
BankControlBeanではメンバ変数に口座の情報accountを保持(2)します。口座生成メソッドcreateAccount(3)では、accountオブジェクトを生成しています。BankControlBeanを削除するdestoryメソッドには、このメソッドが呼ばれたら削除することをコンテナに通知するために@Removeアノテーションを定義(4)します。
実装クラスBankControlBean.java