10
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Yoshio Terada Java Evangelist http://yoshio3.com , Twitter : @yoshioterada

Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1

Yoshio Terada

Java Evangelist

http://yoshio3.com, Twitter :

@yoshioterada

Page 2: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracleは、米国オラクルコーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 3

Struts から JSF へ

DB

画面デザイン

依存性注入

ビジネス

ロジック

DB連携

O/Rマップ

利用者

Struts

JSF

spring

DI/CDI/

EJB

HIBER

NATE

JPA

Struts, Spring, Hibernate

Java EE

Page 4: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 4

Java EE の一般的なアプリケーション構成

DB

JSF /EL CDI

EJB/JTA

クライアント Web アプリケーション

Web/EJB コンテナ

JPA (O/R Mapping)

Page 5: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 5

JavaServer Faces

Web デザイナー

HTML 5 フレンドリー・マークアップ

<HTML <body jsf:id="body"> <form jsf:id="form" jsf:prependId="false"> <input type="text” jsf:id="name" jsf:value=“”> </form> <body></html>

Page 6: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 6

@Named(value=“person”) public class Person implements Serializable { private String name; private String addressline1; private String addressline2; private String city; private String phone; private String email; } //別途 Setter,Getter メソッドを用意

<input type=“text” jsf:id="name” jsf:value=“#{person.name}”> <input type=“text” jsf:id=”city” jsf:value=“#{person.city}”>

JSF と CDI そして バインディング(EL)

Page 7: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 7

JSF のボタン押下処理と CDI の処理実装 action でボタンが押下された際のメソッドにバインディング

<input type=“submit” value=”DBへ登録“ jsf:action=”#{customerManage.savePerson}“/>

Facelets でバックエンド処理にバインド

@Named(value =“customerManage”) @RequestScoped public class CustomerManage { public String savePerson() { //バックエンド処理の実装 return "success"; } }

CDI で実装

Page 8: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 8

JSF-CDI-EL の活用メリット

1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上

1. 設定ファイルの少なささ 2. xhtml ベースの開発

4. コンポーネントの再利用(カスタム・コンポーネント) 5. Java EE 標準仕様

Page 9: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 9

Page 10: Yoshio Terada Java Evangelist , Twitter · JSF-CDI-EL の活用メリット 1. 開発生産性の高さ 2. View と ロジックの明確な分離が可能 3. 保守性の向上 1

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 10