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 2026 ExpyDoc