Grizzly 上で動かす
URI u= UriBuilder.fromUri("http://localhost/").
port(10082).build();
ResourceConfig conf = new ResourceConfig();
conf.register(SampleResource.class);
HttpServer server =
GrizzlyHttpServerFactory.createHttpServer(
u, conf);
14.
HTTP サーバー
ルーティング
リクエスト処理 /レスポンス生成
ドメインロジック
アプリケーション処理
HTML 生成
テンプレートエンジン
ドメインモデル
ORM
RDBMS
Grizzly
Jersey
15.
HTTP サーバー
ルーティング
リクエスト処理 /レスポンス生成
ドメインロジック
アプリケーション処理
HTML 生成
テンプレートエンジン
ドメインモデル
ORM
RDBMS
Grizzly
Jersey
16.
EclipseLink (ORM; JPA実装)
● JPA: Java Persistence API。
– Java SE、Java EE 環境用の ORM。
● 設定ファイルやクラス定義から自動的に DB、
テーブルを生成可能。
● アノテーション使いまくり。
● EclipseLink は JPA 2.1 の参照実装。
– Hibernate の方が web 上の情報は多そうだけど、多
機能で複雑そうなので EclipseLink を選択。
● Jersey の DI 機能でインジェクションしてる。
17.
エンティティクラス
@Entity
@Table(name="sample_user")
public class SampleUserimplements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private long id;
public long getId() { return id; }
@Column(name="name")
private String name;
public String getName() { return name; }
protected SampleUser() {}
public SampleUser(String name) {
this.name = name;
}
}
18.
EntityManager による操作
// EntityManagerem;
// 永続化
em.getTransaction().begin();
SampleUser u = new SampleUser("nobuoka");
em.persist(u);
em.getTransaction().commit();
// 取得
SampleUser u = em.find(SampleUser.class, u.getId());
19.
HTTP サーバー
ルーティング
リクエスト処理 /レスポンス生成
ドメインロジック
アプリケーション処理
HTML 生成
テンプレートエンジン
ドメインモデル
ORM
RDBMS
Grizzly
Jersey
EclipseLink
20.
HTTP サーバー
ルーティング
リクエスト処理 /レスポンス生成
ドメインロジック
アプリケーション処理
HTML 生成
テンプレートエンジン
ドメインモデル
ORM
RDBMS
Grizzly
Jersey
EclipseLink