狠狠撸

狠狠撸Share a Scribd company logo
拡大するCDI
 JavaOne報告会2012
上妻 宜人 (あげつま のりと)
自己紹介

●
    とあるシステムインテグレータに勤務
●
    仕事内容
    ●
        動かないstruts-config.xmlを紐解く作業
    ●
        Strutsのタグライブラリに溺れた人を助ける
    ●
        社内のJava開発サポート
CDIって何だ?

http://blog.taigacompany.com/blog/sustainability-business-life-environment/can-you-
spot-these-common-characteristics-of-sustainable-innovation-cultures
好きなクラスを書いて

public class GreetingService {
  public void hello() {
    System.out.println(“JavaOne報告会2012”);
  }
}
インジェクション (コンテナ管理クラスが対象)

public class GreetingService {
  public void hello() {
    System.out.println(“JavaOne報告会2012”);
  }
}




@WebServlet(/hello)
public class HelloServlet extends HttpServlet {

  @Inject
  GreetingService greetingService;
CDIは色々と多機能


アノテーションを付けるだけで、様々な機能が使える!


●
    DIのサポート - @Inject
●
    インターセプタのサポート - @InterceptorBinding
●
    スコープのサポート - @RequestScoped など
●
    EL式(JSP/JSF)からの参照 - @Named
あれ?どこかで見たような...




  http://communicatalyst.blogspot.jp/2012/04/questions-upon-questions.html
CDIの機能自体は他の既存仕様にもある


●
    DIのサポート
●
    インターセプタのサポート        @EJB/(@Interceptor)

●
    スコープのサポート
●
    EL式(JSP/JSF)からの参照    @javax.faces.bean
                             パッケージ
                         @ManagedBeanなど
颁顿滨の目的
今までの技术には一丁一端があった


               DI   インターセプタ   スコープ   EL式参照


EJB3.1         ○     ○         ×      ○
 JSF2.x
Managed Bean   △      ×       ○       ○
 CDI1.0
色んな技术の良いところを组み合わせた

               DI   インターセプタ   スコープ   EL式参照


EJB3.1         ○     ○         ×      ○
 JSF2.x
Managed Bean   △      ×       ○       ○
 CDI1.0        ○     ○        ○       ○
万能で便利な颁顿滨ですが
Java EE 仕様のなかで
機能に重複が生じてきたのも事実
Java EE 7で始まる重複機能の整理
Java EE 6の同じような機能



JSF   @javax.faces.bean.ManagedBean


               or
  CDI    @javax.inject.Named
蝉迟补肠办辞惫别谤蹿濒辞飞でも多くの质问がある
JSF2.2 (Java EE 7)

JSF ManagedBeanの仕様書に注記が付いている
JSF2.2 (Java EE 7)




(意訳)
これらのアノテーションはJava EEに
含まれる他仕様と機能が重複している
ため、将来的に非推奨になる可能性が
あります。
CDIがない環境では
JSFは使えなくなるの?
闯厂贵の闯滨搁础で议论を确认。




   http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-976
强调されていたこと
Jacob Korherrさん
            @JSF Expert GroupMember



(意訳)
●
    JSFのマネージドBeanを完全に削除するわけじゃない
●
    もちろんこれからもサポートを続けていく
●
    今後追加される新機能を使いたい人はCDIを使って欲しい
これからも使い続けられる
JSFのManaged Beanは縮小傾向へ


               DI   インターセプタ   スコープ   EL式参照


 EJB3.x        ○     ○         ×      ○
               △
 JSF2.x将来的に非推奨になる予定
Managed Bean          ×       ○       ○
 CDI1.0        ○     ○        ○       ○
次なるターゲット。伝统の贰闯叠。


               DI   インターセプタ   スコープ   EL式参照


 EJB3.x        ○     ○         ×      ○
               △
 JSF2.x将来的に非推奨になる予定
Managed Bean          ×       ○       ○
 CDI1.0        ○     ○        ○       ○
EJBだって?
 あのXMLメンテナンスは
不発弾処理みたいなものだ。



      http://www.mod.go.jp/gsdf/mae/13b/bomb.html
今の贰闯叠はそんなに难しくない
             これ付けるだけでEJBになる
             トランザクション管理に便利

@Staless
public class BankService {
  public void 振り込み() {
      // Aさんの口座から100円引き
      Aさん.debit(100);

        // Bさんの口座に100円足す
        Bさん.receive(100);
    }
}
CDIにない、
便利な機能がEJBにはある。
コンテナ管理トランザクション
         (Container Managedment Transaction)

                           インター
               CMT   DI     セプタ   スコープ EL式参照


EJB3.x
               ◎     ○       ○       ×         ○

JSF2.x
Managed Bean   ×     △       ×      ○          ○

CDI1.0
               ×     ○       ○      ○          ○
そんな贰闯叠に危机が访れた
Linda DeMichielさん
           @Java EE7 Spec Lead



(意訳)
●
    Java EEの色んなBean機能は広く使える方が便利
●
    CDIインターセプタの機構を使って、もっとコンテナ管理
    トランザクションが広く使えるようにしようと思う。



                          写真 http://jaxconf.com/2011/keynotes/
@TransactionalでEJBいらず

@Transactional(
  rollbackOn={SQLException.class},
  dontRollbackOn={SQLWarning.class}
)
public class ShoppingCart {...}

 ●
     rollbackOn : ロールバックする例外
 ●
     dontRollBackOn : ロールバックしない例外
この机能が盛り込まれると
基本的な机能は颁顿滨でだいぶ网罗


                          インター
               CMT   DI    セプタ   スコープ EL式参照


EJB3.x
        ◎ ○ ○ ×                        ○

        × △ × ○
JSF2.x 将来的に非推奨になる予定
Managed Bean                           ○

CDI1.1
        ◎ ○ ○ ○
(+JTA1.2)                              ○
Java EEの主要コンポーネント




            CDI
EJB         Bean
ご清聴ありがとうございました

More Related Content

What's hot (19)

PDF
WildFly Swarm - Rightsize Your Java EE Apps
Yoshimasa Tanabe
?
PDF
Javaアプリケーションサーバ 構築?運用の勘所
Takahiro YAMADA
?
PPTX
Java EE 7技術アップデート & 逆引き JSF 2.2
Hirofumi Iwasaki
?
PDF
奥别产アプリに低レイテンシ?高可用性を求めるのは间违っているのだろうか
Chihiro Ito
?
PDF
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
?
PDF
MySQL Connector/J における SQL インジェクションの脆弱性
JPCERT Coordination Center
?
PDF
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
?
PDF
Nashorn in the future (Japanese)
Logico
?
PDF
Java EE 再入門
minazou67
?
PDF
Spring Social でソーシャルログインを実装する
Rakuten Group, Inc.
?
PDF
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
JPCERT Coordination Center
?
PDF
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
JPCERT Coordination Center
?
PPTX
Jsf アプリ作ったった
Oda Shinsuke
?
PDF
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
?
PDF
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性
JPCERT Coordination Center
?
PDF
Java SE 再入門
minazou67
?
PDF
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
?
PDF
MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57
Toshiaki Maki
?
PPT
厂迟谤耻迟蝉2を始めよう!
Shinpei Ohtani
?
WildFly Swarm - Rightsize Your Java EE Apps
Yoshimasa Tanabe
?
Javaアプリケーションサーバ 構築?運用の勘所
Takahiro YAMADA
?
Java EE 7技術アップデート & 逆引き JSF 2.2
Hirofumi Iwasaki
?
奥别产アプリに低レイテンシ?高可用性を求めるのは间违っているのだろうか
Chihiro Ito
?
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
?
MySQL Connector/J における SQL インジェクションの脆弱性
JPCERT Coordination Center
?
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
?
Nashorn in the future (Japanese)
Logico
?
Java EE 再入門
minazou67
?
Spring Social でソーシャルログインを実装する
Rakuten Group, Inc.
?
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
JPCERT Coordination Center
?
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
JPCERT Coordination Center
?
Jsf アプリ作ったった
Oda Shinsuke
?
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
?
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性
JPCERT Coordination Center
?
Java SE 再入門
minazou67
?
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
?
MVC 1.0 JSR-371を通してAdopt a JSRに知ろう #jjug_ccc #ccc_r57
Toshiaki Maki
?
厂迟谤耻迟蝉2を始めよう!
Shinpei Ohtani
?

Similar to Lt agetsuma 拡大するcdi (16)

PDF
JJUG 11月ナイトセミナー CDIをはじめよう
Norito Agetsuma
?
PPTX
3.Java EE7 徹底入門 CDI&EJB
Tsunenaga Hanyuda
?
PPTX
闯笔础の基础と现场で役立つ开発罢颈辫蝉
yuichi_kuwahara
?
PDF
Spring3.1概要x di
Yuichi Hasegawa
?
PDF
Jakarta CDI 4.0
Satoshi Kubo
?
PDF
Java EE 6で復活するエンタープライズJavaの世界
Takakiyo Tanaka
?
PDF
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
PPTX
Beginning Java EE 6 勉強会(1) #bje_study
Toshiaki Maki
?
PDF
闯补惫补翱苍别2015报告またはこれからの闯补惫补
なおき きしだ
?
PDF
CDI, Seam 3 and Forge
nekop
?
PPTX
Beginning Java EE 6 勉強会(3) #bje_study
inatus
?
PDF
Web sphere2002 0624
伸夫 森本
?
PDF
Jjug springセッション
Yuichi Hasegawa
?
PPTX
ついに始まるJava EE 7時代のアプリケーション開発
Takakiyo Tanaka
?
PDF
闯补惫补プログラマーももう逃げられない。マイクロサービスと础笔滨の世界。
Takakiyo Tanaka
?
PDF
Java EEの話(仮)
Satoshi Kubo
?
JJUG 11月ナイトセミナー CDIをはじめよう
Norito Agetsuma
?
3.Java EE7 徹底入門 CDI&EJB
Tsunenaga Hanyuda
?
闯笔础の基础と现场で役立つ开発罢颈辫蝉
yuichi_kuwahara
?
Spring3.1概要x di
Yuichi Hasegawa
?
Jakarta CDI 4.0
Satoshi Kubo
?
Java EE 6で復活するエンタープライズJavaの世界
Takakiyo Tanaka
?
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
Beginning Java EE 6 勉強会(1) #bje_study
Toshiaki Maki
?
闯补惫补翱苍别2015报告またはこれからの闯补惫补
なおき きしだ
?
CDI, Seam 3 and Forge
nekop
?
Beginning Java EE 6 勉強会(3) #bje_study
inatus
?
Web sphere2002 0624
伸夫 森本
?
Jjug springセッション
Yuichi Hasegawa
?
ついに始まるJava EE 7時代のアプリケーション開発
Takakiyo Tanaka
?
闯补惫补プログラマーももう逃げられない。マイクロサービスと础笔滨の世界。
Takakiyo Tanaka
?
Java EEの話(仮)
Satoshi Kubo
?
Ad

More from Norito Agetsuma (11)

PDF
蚕耻补谤办耻蝉入门
Norito Agetsuma
?
PDF
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
?
PDF
Jbatch実践入門 #jdt2015
Norito Agetsuma
?
PPTX
Tomcatの実装から学ふ?クラスロータ?リーク #渋谷Java
Norito Agetsuma
?
PDF
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
?
PDF
Unixカーネルの設計 7 プロセスの制御
Norito Agetsuma
?
PDF
AeroGear & Java EE 7 で簡単プッシュ
Norito Agetsuma
?
PDF
プロになるためのJavaScript入門読書会 レジュメ
Norito Agetsuma
?
PDF
SQLアンチパターン読書会 レジュメ
Norito Agetsuma
?
PDF
JSR 352 “Batch Applications for the Java Platform”
Norito Agetsuma
?
PDF
Java Batch 仕様 (Public Review時点)
Norito Agetsuma
?
蚕耻补谤办耻蝉入门
Norito Agetsuma
?
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
?
Jbatch実践入門 #jdt2015
Norito Agetsuma
?
Tomcatの実装から学ふ?クラスロータ?リーク #渋谷Java
Norito Agetsuma
?
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
?
Unixカーネルの設計 7 プロセスの制御
Norito Agetsuma
?
AeroGear & Java EE 7 で簡単プッシュ
Norito Agetsuma
?
プロになるためのJavaScript入門読書会 レジュメ
Norito Agetsuma
?
SQLアンチパターン読書会 レジュメ
Norito Agetsuma
?
JSR 352 “Batch Applications for the Java Platform”
Norito Agetsuma
?
Java Batch 仕様 (Public Review時点)
Norito Agetsuma
?
Ad

Lt agetsuma 拡大するcdi