Submit Search
Upload
3.Java EE7 徹底入門 CDI&EJB
•
Download as PPTX, PDF
•
8 likes
•
2,960 views
Tsunenaga Hanyuda
Follow
2016/02/15 JJUG の発表資料です
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 44
Download now
Recommended
Java EE 再入門
Java EE 再入門
minazou67
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
Sql server 構築 運用 tips
Sql server 構築 運用 tips
Masayuki Ozawa
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
Koichi Sakata
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
Narami Kiyokura
Recommended
Java EE 再入門
Java EE 再入門
minazou67
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
DDD sample code explained in Java
DDD sample code explained in Java
増田 亨
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
Sql server 構築 運用 tips
Sql server 構築 運用 tips
Masayuki Ozawa
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
Koichi Sakata
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
Narami Kiyokura
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
(Fix)Azure Network Security Group(NSG)のおさらい
(Fix)Azure Network Security Group(NSG)のおさらい
Yoshimasa Katakura
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
AzureDevOps ユーザーストーリーを作ってみよう - 201904
AzureDevOps ユーザーストーリーを作ってみよう - 201904
Masaru Takahashi
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Hirofumi Iwasaki
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
みんな大好きJava gc入門 【前編】
みんな大好きJava gc入門 【前編】
kouzirou tenkubashi
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
Prashanth Kumar
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
Masatoshi Tada
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
Hirofumi Iwasaki
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
Masuji Katoda
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
Takakiyo Tanaka
More Related Content
What's hot
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
(Fix)Azure Network Security Group(NSG)のおさらい
(Fix)Azure Network Security Group(NSG)のおさらい
Yoshimasa Katakura
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
AzureDevOps ユーザーストーリーを作ってみよう - 201904
AzureDevOps ユーザーストーリーを作ってみよう - 201904
Masaru Takahashi
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Hirofumi Iwasaki
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
Masayuki Ozawa
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
Yoichi Toyota
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
みんな大好きJava gc入門 【前編】
みんな大好きJava gc入門 【前編】
kouzirou tenkubashi
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
Prashanth Kumar
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
Masatoshi Tada
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
ke-m kamekoopa
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
Hirofumi Iwasaki
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
What's hot
(20)
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
(Fix)Azure Network Security Group(NSG)のおさらい
(Fix)Azure Network Security Group(NSG)のおさらい
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
AzureDevOps ユーザーストーリーを作ってみよう - 201904
AzureDevOps ユーザーストーリーを作ってみよう - 201904
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Kotlinアンチパターン
Kotlinアンチパターン
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
みんな大好きJava gc入門 【前編】
みんな大好きJava gc入門 【前編】
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
SQLアンチパターン - ジェイウォーク
SQLアンチパターン - ジェイウォーク
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
Viewers also liked
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
Masuji Katoda
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
Takakiyo Tanaka
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch
Jun Inose
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
EJB3 ABC
EJB3 ABC
bose999
JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”
Norito Agetsuma
Wicket + EJB3 on JBoss (Japanese)
Wicket + EJB3 on JBoss (Japanese)
bose999
BTS/ITSの近況とあれこれ 2015
BTS/ITSの近況とあれこれ 2015
minazou67
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話
Ryou Soda
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou67
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Edward Burns
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Viewers also liked
(14)
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
EJB3 ABC
EJB3 ABC
JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”
Wicket + EJB3 on JBoss (Japanese)
Wicket + EJB3 on JBoss (Japanese)
BTS/ITSの近況とあれこれ 2015
BTS/ITSの近況とあれこれ 2015
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
開発環境の認証を改善して Redmineを社内標準にした話
開発環境の認証を改善して Redmineを社内標準にした話
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Similar to 3.Java EE7 徹底入門 CDI&EJB
Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編
normalian
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
Dai FUJIHARA
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
DaichiKimura3
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
HIDEKAZU MATSUURA
Decode2017を振り返りアップデート情報チョット見せ
Decode2017を振り返りアップデート情報チョット見せ
Tsukasa Kato
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
Unity Technologies Japan K.K.
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
wind06106
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
Dai FUJIHARA
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
Rakuten Group, Inc.
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
220523JS7.pdf
220523JS7.pdf
OSSラボ株式会社
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
ssuser41f27b
SCUGJ第28回勉強会:Azure Extended Network Ver 2.2.0 Update
SCUGJ第28回勉強会:Azure Extended Network Ver 2.2.0 Update
wind06106
SCUGJ第25回勉強会:Azure Site Recoveryでハマった with VMware 環境
SCUGJ第25回勉強会:Azure Site Recoveryでハマった with VMware 環境
wind06106
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
Yusuke Suzuki
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
wind06106
Similar to 3.Java EE7 徹底入門 CDI&EJB
(20)
Windows Azure Bootcamp メディアサービス編
Windows Azure Bootcamp メディアサービス編
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
決済システム内製化に向けたプラットフォーム構築 - PCF・BOSHによるオブザーバブルプラットフォーム
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
Decode2017を振り返りアップデート情報チョット見せ
Decode2017を振り返りアップデート情報チョット見せ
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
【Unite Tokyo 2018】非プログラマでもできる!簡単プロジェクト管理&マネタイゼーション術!
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
220523JS7.pdf
220523JS7.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
SCUGJ第28回勉強会:Azure Extended Network Ver 2.2.0 Update
SCUGJ第28回勉強会:Azure Extended Network Ver 2.2.0 Update
SCUGJ第25回勉強会:Azure Site Recoveryでハマった with VMware 環境
SCUGJ第25回勉強会:Azure Site Recoveryでハマった with VMware 環境
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
Recently uploaded
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Recently uploaded
(10)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
3.Java EE7 徹底入門 CDI&EJB
1.
ビジネスロジック層の開発 CDI & EJB 2016/02/15
JJUG ナイトセミナー #JJUG 2016/02/15 JJUG Night Seminar #JJUG 1 羽生田 恒永
2.
自己紹介 • 羽生田 恒永(はにゅうだ・つねなが) •
SIでの開発業を経て、ミドルウェアコンサルタントを してます • 白猫本 5-6章を担当 2016/02/15 JJUG Night Seminar #JJUG 2
3.
Safe Harbor Statement •
本資料は私個人の見解であり所属会社の見解を反映したもの ではありません。 • 本資料の作成にあたっては正確な記述につとめましたが、内容に 対してなんら保証をするものではなく、内容に基づくいかなる運用 結果に関してもいっさいの責任を負いません。 32016/02/15 JJUG Night Seminar #JJUG
4.
排他的な関係ではない • 本書でCDI or
EJB とか選択とか書いているので排 他的であるような印象を残してしまった部分が あったようです • 「で、どっちが良いの?」と聞かれることもあり • 実際には組み合わせで解決するのが良いのかな と思っています 42016/02/15 JJUG Night Seminar #JJUG
5.
言い訳はここまで No Excuse, No
Life. but 52016/02/15 JJUG Night Seminar #JJUG
6.
今日の発表 • 本の内容をまとめて発表しようかと思ったもののそ こは読んで頂くとして • 今日は書いてないことを中心に発表しようかと思 います 62016/02/15
JJUG Night Seminar #JJUG
7.
白猫本に書いてあること • CDI の使い方 –
インジェクションと型解決、定義方法 – イベント処理、ステレオタイプ、プロデューサ/ディスポーザ • EJB の使い方 – 各種EJB解説 – この先EJBまだ使って…良いんだよね?という行間 • 今日の話にEJBは出てこないです 72016/02/15 JJUG Night Seminar #JJUG
8.
白猫本に書いてないこと • CDI コンテナの取り扱い •
@ConversationScoped ちゃんと書け • CDI におけるトランザクションの取り扱い • EJB のテストのところはもうちょっと書けただろ! 82016/02/15 JJUG Night Seminar #JJUG
9.
おさらい Let’s Get Started 92016/02/15
JJUG Night Seminar #JJUG
10.
おさらい::CDIとは何か • CDI とは何か –
Contexts and Dependency Injection – そもそもDIは「層」をくっつける接着剤 – 必要なオブジェクトを必要なタイミングで提供 2016/02/15 JJUG Night Seminar #JJUG 10
11.
おさらい::スコープ定義 • POJOにスコープ定義さえあれば@Inject で好きな 箇所でインジェクションできる –
@RequestScoped – @ViewScoped – @SessionScoped – @ApplicationScoped – @ConversationScoped 2016/02/15 JJUG Night Seminar #JJUG 11
12.
おさらい::例 2016/02/15 JJUG Night
Seminar #JJUG 12 @Inject MyBean bean; @RequestScoped public class MyBean { … } サーブレット他 CDIビーン CDI コンテナによるインスタンス化と代入
13.
おさらい::便利 • CDIは簡単便利 • 極論するとスコープ定義さえ覚えれば使える •
EJBと比較すると実装が簡単かつリソースメリットが ありそう • 使いたい箇所でぱっと使ってさっとお掃除 – これが理想・・・ 2016/02/15 JJUG Night Seminar #JJUG 13
14.
おさらい::層 • 層って何 2016/02/15 JJUG
Night Seminar #JJUG 14 アプリケーションサーバ DB Servlet JSP EJB Entity プレゼンテーション層 ・画面処理 業務ロジック層 ・業務処理判断 永続化層 ・データ処理 Web ブラウザ Web サービス 外部メッセージングサービスなど JSF CDI
15.
おさらい::層 • 実際 2016/02/15 JJUG
Night Seminar #JJUG 15 アプリケーションサーバ DB Servlet JSP EJB Entity プレゼンテーション層 ・画面処理 業務ロジック層 ・業務処理判断 永続化層 ・データ処理 Web ブラウザ Web サービス 外部メッセージングサービスなど JSF CDI
16.
はじめましょう Let’s Get Started,
again 162016/02/15 JJUG Night Seminar #JJUG
17.
白猫本に書いてないこと • CDI コンテナの取り扱い •
@ConversationScoped • トランザクションの取り扱い • EJB のテスト 172016/02/15 JJUG Night Seminar #JJUG
18.
CDIコンテナ 182016/02/15 JJUG Night
Seminar #JJUG
19.
CDIコンテナ • よくも悪くも Weld。猫も杓子も
Weld。 • 自分が開発/運用するアプリケーションサーバで採用 しているWeldのバージョンがどのバージョンなのか、くら いは抑えておかないと死ねます • 開発Glassfish 運用は商用サーバとか • (感覚ですが)APサーバのバグ当たる前にWeldの バグ当たった方が良いかもしれない、位に思っていた 方が良いと思われます 192016/02/15 JJUG Night Seminar #JJUG
20.
CDIコンテナ • ちなみに Glassfish
と Oracle WebLogic Serverの Weld採用バージョンはこんな感じ Glassfish/Weld Oralce WebLogic Server/Weld Java EE 6 3.1.2.2 / 1.1.8 12.1.2 / 1.1.10 12.1.3 / 1.1.18 Java EE 7 4.1 / 2.2.2 12.2.1 / 2.2.13 ※羽生田の独自調査による 202016/02/15 JJUG Night Seminar #JJUG
21.
CDIコンテナ • CDIコンテナへのアクセス用API – CDI –
CDIProvider – BeanManager – Extension 212016/02/15 JJUG Night Seminar #JJUG
22.
CDI • 取得:CDI.current(); • BeanManager
の取得元として利用 – CDI.getBeanManager(); – BeanManager は @Inject で取得可能ではある • CDI.select(MyBean.class).get(); とか – programatic lookup! • Since: 1.1 222016/02/15 JJUG Night Seminar #JJUG
23.
CDI::小ネタ • CDI.current().toString(); “Weld”
とだけ返ってきた… (glassfish 4.1 / Weld2.2.2) 232016/02/15 JJUG Night Seminar #JJUG
24.
CDIProvider • CDI.current(); の裏で呼び出されるやつ •
アプリケーションサーバ側は叩かれたら CDIProviderのインスタンスを返す必要がある • Since: 1.1 242016/02/15 JJUG Night Seminar #JJUG
25.
BeanManager • Portable Extension
(chapter#11)で定義されて いる機能の担い手 • @Inject BeanManager manager; • CDIビーンに関する拡張操作について実行可能 252016/02/15 JJUG Night Seminar #JJUG
26.
BeanManager::例 • 特定のCDI限定子を持つCDIビーンについての情報取得例 @Inject BeanManager manager; … Set<Bean<?>>
beans = manager.getBeans( Object.class, new AnnotationLiteral<OreQualifier>(){} ); beans.forEach( b -> log("bean:{name=" + b.getBeanClass().getCanonicalName() + "}") ); 262016/02/15 JJUG Night Seminar #JJUG
27.
BeanManager • 以下が可能 – コンテナ管理のCDIビーンに関する情報取得 –
CDIビーンの操作(インジェクションポイント、イベント発火、コン テキスト…etc) • ちょこっと便利に使うのは良いけど、業務アプリケーションで 使い過ぎには注意が必要なのでは、とか思ったり – 過度の使いすぎ フレームワーク化 障害時に追えないと か辛すぎる 272016/02/15 JJUG Night Seminar #JJUG
28.
CDIコンテナ::LifeCycleEvents • CDIコンテナ拡張機能のひとつ • コンテナ周りの各種イベント(後述)をフックできる •
作り方 1. javax.enterprise.inject.spi.Extension を実装するクラスを作 成する • イベントを受け取るにはオブザーバーを使う 2. META-INF/services/javax.enterprise.inject.spi.Extension ファイルに上記クラス名を記載 282016/02/15 JJUG Night Seminar #JJUG
29.
CDIコンテナ::LifeCycleEvents • 例 public class
ContainerEventsExtension implements Extension { public ContainerEventsExtension(){ log("start container extension..."); } public void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event){ log(“***EVENT***" + event.toString()); } … } 292016/02/15 JJUG Night Seminar #JJUG
30.
CDIコンテナ::LifeCycleEvents • ライフサイクルイベント – BeforeBeanDiscovery –
AfterTypeDiscovery – AfterBeanDiscovery – AfterDeploymentValidation – BeforeShutdown – ProcessAnnotatedType – ProcessInjectionPoint – ProcessInjectionTarget – ProcessProducer – ProcessBeanAttributes – ProcessBean – ProcessObserverMethod 多いよ!!! 302016/02/15 JJUG Night Seminar #JJUG
31.
CDIコンテナ::LifeCycleEvents • 拡張機能は楽しい • 以下の人向け –
APサーバや生コンテナに任せて居られない人 – 業務アプリで攻めたい人 • デザパタとか上に載せたくなる病の人は注意 • すみませんコンサバなもんでつい 312016/02/15 JJUG Night Seminar #JJUG
32.
CDIコンテナ::雑感 • CDIコンテナの動き(と言うよりもCDIビーンの管理 状態遷移)は手に取るようには分からない事が 多い気がしてます • 特に大規模開発してると勝手インジェクションとか 死ぬほどあって制御できないパターンのやつとか •
なのでCDIビーンの生き様/死に様を手に取るよう にわかるような拡張を考えようかなと思ったり 322016/02/15 JJUG Night Seminar #JJUG
33.
@ConversationScoped 332016/02/15 JJUG Night
Seminar #JJUG
34.
@ConversationScoped • 自分でスコープ長を定義できる • begin()
end() やタイムアウトで指定 • JSFとは勝手に紐づくけどそれ以外の操作(リダイ レクトとか)には明示的にcidを用いた上で戻って 来ないと、新規のconversationとして扱われてし まう 342016/02/15 JJUG Night Seminar #JJUG
35.
(CDIと)トランザクション 352016/02/15 JJUG Night
Seminar #JJUG
36.
(CDIと)トランザクション • 言い訳が思いつかない – JTA
1.2 までやり始めると書いてて死ねる • ので、ここで補足 362016/02/15 JJUG Night Seminar #JJUG
37.
(CDIと)トランザクション • JTA 1.2
(JSR-907) • 目指せ EJB CMT からの脱却 • みんなそんなにEJBが嫌なのか! – と思いつつもUserTransactionなんか書きたくないので、 EJBに依存することさえ無ければこいつ良いヤツなの にって思ってるでしょ 372016/02/15 JJUG Night Seminar #JJUG
38.
(CDIと)トランザクション::これだけ • javax.transaction パッケージ •
@Transactional – トランザクション境界の設定 – クラスとメソッドどちらでも – JTA なのでCDIビーンじゃなくてもいける • Transactional.TxType – トランザクション属性を決める – TransactionAttributeType と同様 382016/02/15 JJUG Night Seminar #JJUG
39.
(CDIと)トランザクション::これだけ • @TransactionScoped – “現在有効なJTAトランザクション”の実行に合わせたラ イフサイクルを持つもの @Transactional
CDI/EJB DBCDI/EJB tx.begin(); tx.end(); @Transaction Scoped どちらに呼び出されてもインスタンスは同じ ※トランザクションごとに新たに作成される 392016/02/15 JJUG Night Seminar #JJUG
40.
まとめ wrap it up 402016/02/15
JJUG Night Seminar #JJUG
41.
とはいえ • EJBは時代的にアレだがCDIで何でもかんでもって設 計もどうかなって思う – 密結合させることも必要だし悪くないのだ –
スコープ制御しきれない悪寒。というか実感。 – EJBみたいにプールが欲しい時があって本末転倒感 • EJBに任せてもいい処理があるのではないか – でも@TransactionScopedはちょっと良いな 412016/02/15 JJUG Night Seminar #JJUG
42.
最近はこう考えている • CDIが本格進出してきたことでフリーダムになってしまっ た印象 – アイツが来るまでは村は平和だったんじゃ!的な •
CDI + EJB でいいよね? – 実際案件に触れているとそうしているお客様が増えてきて いる気がする – 悩んでいるところには悩まないように簡素に実装できるとい う意味で推し 422016/02/15 JJUG Night Seminar #JJUG
43.
この領域の残念なところ • フリーダム • アンチパターンが多くない(ので集めたい) –
使いすぎ良くない、程度 • 本編で少し触れましたが多量のインジェクションは止めましょう – 2回ほど見かけました。Oracle WebLogic Server が死にかけてた – 大規模開発現場での設計者が意図しないインジェクション数 – かといってフレームワークで制御ってのも – 設計でカバー?うーん… 432016/02/15 JJUG Night Seminar #JJUG
44.
感想など • 書けていないこと沢山ありました • ちょくちょくどこかで追撃できればと思います •
振り返れば楽しかったです 442016/02/15 JJUG Night Seminar #JJUG
Download now