Stateful Session Beans EJB 3.0 コース 第5回 2006年8月4日 1 ここでの目標 Stateful Session Bean の概要を理解する。 2 Stateful Session Beans 3 Session Beans (1) クライアントが必要に応じて呼び出す処理を まとめたもの クライアントの特定のセッションに対応 セッション開始と同時に生成され、セッション 終了時に消滅 4 Session Beans (2) Stateless Session Beans インスタンスに固有のフィールドがないため内 部状態を持たず、ユーティリティクラスのように 振る舞う Stateful Session Beans 内部状態を持っている 5 サンプルアプリケーション Cart サンプルアプリケーション Java EEサーバ側 (EJB) Cart.java CartBean.java クライアント側 CartClient.java 6 インタフェースの作成 7 Cart.java (1) import java.util.Collection; import javax.ejb.Remote; @Remote public interface Cart { public void addItem(String item); public Collection getItems(); } 8 Cart.java (2) Stateful Session Beans が公開するメソッド を定義しているインタフェース 9 Stateful Session Beans の作成 10 CartBean.java (1) import javax.ejb.Stateful; @Stateful public class CartBean implements Cart { private ArrayList<String> list = new ArrayList<String>(); public void addItem(String item) { list.add(item); } } 11 CartBean.java (2) Stateful Session Bean であることを示すため に、@Stateful アノテーションを付加する 内部状態を管理するために list フィールドを 用意している 内部状態 = ここではCartの中身 12 クライアントプログラム 13 CartClient.java cart.addItem("かに"); cart.addItem("うに"); cart.addItem("利尻昆布"); Collection<String> c = cart.getItems(); for (String item: c) { System.out.println(item); } 14 課題 15 課題 銀行の口座を表す Stateful Session Bean をつくる。 16 課題の クライアントプログラム例 @EJB static Bank bank; bank.deposit(10000); // 預ける bank.draw(5000); // おろす // 現在の残高は? Int account = bank.getAccount(); 17
© Copyright 2024 ExpyDoc