Upload
oracle-fusion-middleware
View
2.216
Download
5
Embed Size (px)
DESCRIPTION
This material explain the new feature of Java EE 6 for Japanese Developers.
Citation preview
<Insert Picture Here>
JavaEE 6 重点解説 – 新仕様のご紹介
日本オラクル株式会社 Fusion Middleware 事業統括本部 シニア Java エバンジェリスト 寺田 佳央 ブログ:http://yoshio3.com
Copyright© 2011, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved. 3
Java EE ってまだ難しいと
思ってらっしゃいますか?
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 4
Java EE のイメージ
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 5 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved. 6
J2EE 1.4までは
その通りでした
Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Copyright© 2011, Oracle. All rights reserved. 7
Copyright© 2011, Oracle. All rights reserved. 8
Java EE 5からかんたん
Java EE 6は集大成 !!
Photo by http://www.flickr.com/photos/namwizard/�
Copyright© 2011, Oracle. All rights reserved. 9
Java EE 6
2009年12月リリース
Photo by http://www.flickr.com/photos/namwizard/�
本番環境へ適用可能です
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のテーマ 開発生産性の大幅な向上
• 拡張性 • プロファイルの提供 • 仕様の削減 • 進化するかんたん開発
10
Copyright© 2011, Oracle. All rights reserved.
web.xml
<web-app>
フレームワーク A
フレームワーク B
フレームワーク C
フレームワーク D
</web-app>�
拡張性
• Java EE 以外のフレームワークの組み込み設定が容易
11
フレームワークA
<web-fragment>
….
</web-fragment>�
フレームワークB
<web-fragment>
….
</web-fragment>�
web.xml
<web-app>
<absolute-ordering>
<name>B</name> <name>A</name>
<absolute-ordering>
</web-app>�
Copyright© 2011, Oracle. All rights reserved.
Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
Full Java EE 6 (Enterprise Platform)
Web Profile
Copyright© 2011, Oracle. All rights reserved.
仕様の削減 Pruning (せん定)
• 古くなって使われなくなったAPIの整理
Photo by http://www.flickr.com/photos/tetsu_blink/�
• 次期バージョンで削除予定 • JAX-RPC (->JAX-WS) • EJB Entity Beans (->JPA) • JAXR • JSR-88
Copyright© 2011, Oracle. All rights reserved. 14
かんたん開発 開発を容易にする様々な統合開発環境
Copyright© 2011, Oracle. All rights reserved. 15 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved. 16
JavaServer Faces 2.0 開発効率向上ポイント1
豊富なコンポーネント
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント2
17
JSF 1.2
コーディングから動作確認までの高速化
JSP コンパイル class 動作確認
JSF 2.0
Facelet
(XHTML)
動作確認
SAXParser
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント3
18
強力なテンプレート機能
1 ヘッダ部作成
左␄⏎␝作成�
4 フッダ部作成
右␄⏎␝作成�
共通部分の作成
5 テンプレート作成
テンプレートの作成
コンテンツ
各種ページの作成
コンテンツ
コンテンツ
コンテンツ
コンテンツ
コンテンツ
ご参考: http://yoshio3.com/2011/01/14/jsf20-new-with-facelets-template/�
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0 開発効率の向上ポイント4
19
たった1行の追加でAjaxを実現
<f:ajax/> タグ
Copyright© 2011, Oracle. All rights reserved. 20
Java EE 5 からの改善
Copyright© 2011, Oracle. All rights reserved. 21 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE
Application Server
Web Container
EJB 3.0 までの単体テストは困難
22
EJB
テスト
JSP Servlet JSF
EJB Container
EJB EJB EJB DB
Java SE
アプリケーションサーバへのデプロイ必要
リモートから lookup を実施
• SOAP HTTP • RMI IIOP
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
23
EJB
テスト
EJB Container
EJB EJB EJB
Java SE
DB
アプリケーションサーバへのデプロイ不要
Java SE (JUnit) から直接テストを実施可能
EJBContainer container =!
EJBContainer.createEJBContainer();!
Java SE のアプリケーションから EJB コンテナを初期化
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1:組み込み可能 EJB コンテナ
24
public void testSayHello() {!
EJBContainer container = EJBContainer.createEJBContainer();!
try{!
Hello hello = (Hello)container.getContext().lookup!
("java:global/classes/Hello");!
System.out.println(hello.sayHello());!
}catch(Exception e){!
e.printStackTrace();!
}}!
Copyright© 2011, Oracle. All rights reserved. 25 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 まではフル機能を提供
26
Java EE 5 Specification
JSP Servlet JSF EJB JMS
JTA Java Mail JAXP JAX-WS JPA
JAXB JAXR JDBC JAAS
JNDI
頻繁に使わない仕様もオールインワンで提供
不要モジュールもロードしメモリ消費
実行環境の起動、再起動も遅い
・・・
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 Web プロファイル
• Java EEのサブセットを提供 • Web の開発に特化した軽量サブセット • これさえあれば Web 開発は十分
Full Java EE 6 (Enterprise Platform)
Web Profile
Copyright© 2011, Oracle. All rights reserved.
Web の開発に特化した軽量プロファイル
28
Web プロファイルに含まれる仕様
Servlet 3.0 JPA 2.0
JSP 2.2/EL JTA 1.1
JSTL DI 1.0/CDI 1.0
JSF 2.0 Managed Bean 1.0
Bean Validation 1.0 Interceptors 1.1
EJB 3.1 Lite Common Annotations
繰り返しますが、
これさえあれば Web アプリ開発は十分
Copyright© 2011, Oracle. All rights reserved. 29 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 までのパッケージング
30
WEB-INF/web.xml
WEB-INF/resources
WEB-INF/classes/FooServlet.class
com/oracle/FooBean.class
com/oracle/Foo.class
foo_web.war
foo_ejb.jar
foo.ear
com/oracle/Foo.class
lib/foo_common.jar
foo.ear
WEB-INF/web.xml
WEB-INF/classes/FooServlet.class
foo_web.war
com/oracle/FooBean.class
foo_ejb.jar
適切なアーカイブファイル(ear,jar,war)へのパッケージングが必要(面倒)
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 のパッケージング
31
WEB-INF/web.xml
WEB-INF/resources
WEB-INF/classes/FooServlet.class
WEB-INF/classes/com/oracle/FooBean.class
(EJB)
WEB-INF/classes/com/oracle/Foo.class
foo.war
• EJB を war に含む事が可能
• WEB-INF/classes : クラスファイルとして
• WEB-INF/lib : 分割 jarファイルとして
• 今まで同様のパッケージングも可能
• ejb-jar ファイル
• 配備記述子は省略可能
Copyright© 2011, Oracle. All rights reserved. 32 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
Java EE 5 以降 XML設定の省略が可能
• Servlet • JavaServer Faces • EJB • JAX-WS • など
33
アノテーションによる宣言的プログラミングモデルへ移行
Copyright© 2011, Oracle. All rights reserved.
Servlet 3.0 アノテーションによる実装
import javax.servlet.annotation.InitParam; !import javax.servlet.annotation.WebServlet; !@WebServlet( name = "SimpleServlet", ! urlPatterns = {"/simple"}, ! initParams = { ! @InitParam(name = "param1", value = "value1"), ! @InitParam(name = "param2", value = "value2")! } ) !public class SimpleServlet { }
34
Copyright© 2011, Oracle. All rights reserved.
JSF 2.0 Managed Bean アノテーションによる実装
import javax.faces.bean.ManagedBean;!!@ManagedBean(name="user")!@SessionScoped!public class UserBean {! private String name="";! private String password;!}!
35
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1 アノテーションによる実装
@Stateless!public class HelloBean {! public String sayHello(){! return “Hello”;! }!}!
36
EJB 3.1 より
ローカルビジネスインタフェースの実装も不要
Copyright© 2011, Oracle. All rights reserved. 37 Photo by : http://www.flickr.com/photos/jay_weird_pictures/5557042089/ �
Java EE全部はいらない
テストも大変
開発効率が悪い
コンテナが重量
パッケージングが面倒
XML設定地獄
Copyright© 2011, Oracle. All rights reserved.
アプリケーションサーバが重いのは Java EE 5 まで
38
超高速起動(Web Profile 版利用時)
起動時間約 4 秒 (CPU: 2.4GHz Core 2Duo/4GB)
情報: GlassFish Server Open Source Edition 3.1 (43)
起動時間 : Felix (2,317 ミリ秒)、
起動サービス (871 ミリ秒)、
合計 (3,188 ミリ秒)
使われない機能を未初期化
開発効率の大幅な向上
再起動時間の待ち時間の減少
メモリ使用量も少
Copyright© 2011, Oracle. All rights reserved.
本当に Tomcat だけで事足りますか?
• 結局他のフレームワークを自分で設定していませんか?
39
+
Servlet JSP Expression Language �
Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/�40
これからは
標準技術だけで十分
Copyright© 2011, Oracle. All rights reserved.
Java EE 6 WebProfile Web の開発に特化した軽量プロファイル
• これだけで十分 オールインワン・パッケージ • 軽量(起動時間の高速化、メモリフットプリント) • 必要な場合ライブラリの追加も容易
41
Java EE 6 WebProfile版がサポートする仕様
Servlet 3.0 JPA 2.0
JSP 2.2/EL JTA 1.1
JSTL DI 1.0/CDI 1.0
JSF 2.0 Managed Bean 1.0
Bean Validation 1.0 Interceptors 1.1
EJB 3.1 Lite Common Annotations
Web Profile 版対応
アプリケーションサーバ
Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/�42
技術のアップデート
Copyright© 2011, Oracle. All rights reserved.
Servlet 3.0
43
• 設定ファイル (web.xml) のオプション化 • アノテーションベース開発
• web-fragments.xml による拡張性を提供 • マルチパート対応
• 標準でファイルアップロード機能を提供 • 非同期 Servlet のサポート
• 長時間処理用に非同期スレッド生成 • セキュリティの拡張 (login/logout)
Copyright© 2011, Oracle. All rights reserved.
JavaServer Faces 2.0
• コンポーネントベース開発 (MVC) • Facelets による実装 • テンプレート機能の提供 • カスタム複合コンポーネント • Ajax 対応 • ブックマーク可能なページ
• 設定項目の簡略化 • ページナビゲーションの改良 • faces-config.xml のオプション化
• Bean Validation のサポート • Servlet コンテナのバージョンに非依存
• Servlet 3.0 コンテナの他 2.5 上でも動作可能
44
Copyright© 2011, Oracle. All rights reserved.
EJB 3.1 • パッケージの簡略化
• EJB 3.1 “Lite” の提供 • ローカルビジネスインタフェースのオプション化 • 標準化された Global JNDI名 • Java SEに組み込み可能なEJBコンテナ • その他の新機能
45
Copyright© 2011, Oracle. All rights reserved.
JPA 2.0 : JSR-317 EJB の仕様から独立
• JPA 2.0 = JPA 1.0 + α • モデリングの強化 • JPQL新しい構文の追加 • Criteria API の提供 • メタモデルAPIの提供 • 悲観的ロックの追加 • バリデーションのサポート • 設定オプションの標準化
46
Copyright© 2011, Oracle. All rights reserved.
JAX-RS 1.1
• RESTful サービス用の高レベル HTTP API • POJO とアノテーションベース
• web.xml の設定は不要 • API の利用が可能
• HTTP メソッドとのマッピング • GET, POST, PUT, DELETE 等
• EJB, CDI, Servlet 等と統合 • ステートレス、シングルトン Bean と統合 • Managed Bean 1.0 と統合 • CDI と統合
47
Copyright© 2011, Oracle. All rights reserved.
Bean Validation 1.0
• アプリケーション中で宣言的なバリデーションが可能 • カスタムバリデーションを作成可能 • 1度の制限でどこでもバリデート可能
• Bean 、フィールド、プロパティに制限 • Null チェック、数値適用範囲チェック、メールアドレスチェック等
• JSF 2.0 に統合 • f:validateRequired, f:validateRegexp • ManagedBean
• @NotNull, @Size(max=40) String address 等 • JPA 2.0 に統合
• Entity クラス • @NotNull, @Size(max=40) String address 等
48
Copyright© 2011, Oracle. All rights reserved.
Dependency Injection
• @Inject アノテーション • @Inject @LoggedIn User user;
• Injection メタモデル • どんなBeanもInject対象 • EJB session beans • Plain classes with @ManagedBean • CDIがモジュール内で見つけたクラス • デフォルトで無効、有効化する場合は、beans.xmlを配置 • META-INF/、WEB-INF/に配置
49
DI 1.0/CDI 1.0
Copyright© 2011, Oracle. All rights reserved.
Java EE 7 の
テーマ:クラウド
Java EE 7
テーマ :クラウド
Copyright© 2011, Oracle. All rights reserved.
Java EE 7 に含まれる技術
• マルチテナンシー • JCache (JSR-107) • Concurrency Utilities for Java EE (JSR-236) • JPA 2.1 (JSR-338) • JAX-RS 2.0 (JSR-339) • JMS 2.0 • JavaServer Faces 2.2 • WebTier
• HTML 5対応 • WebSocket 対応 • JSON API のサポート
51
Copyright© 2011, Oracle. All rights reserved. Photo by http://www.flickr.com/photos/namwizard/�52
Java EE 6は集大成 !!
Copyright© 2011, Oracle. All rights reserved. 53
http://www.slideshare.net/OracleMiddleJP/java-ee-6-detail
136ページ
ご参考
Copyright© 2011, Oracle. All rights reserved. 54
Java EE 6 書籍
年末日本語版リリース予定 発売済み
Copyright© 2011, Oracle. All rights reserved.
Copyright© 2011, Oracle. All rights reserved. 56