Pure JavaEE or Spring #glassfishjp

Pure Java EE or Spring?

                                      @making
     GlassFish Users Group Japan勉強会 June 2012
                                   2012/06/04
Who are you?

• Toshiaki Maki @making
     –http://blog.ik.am
     –某大手SIerでR&D
           • 社内Javaフレームワークの整備
           • Spring + Struts + iBatis…




                   GlassFish Users Group Japan
12/06/04                                         2
金魚本翻訳一部担当




           GlassFish Users Group Japan
12/06/04                                 3
JavaEE、Springに限らず
     Javaテクノロジーが好き!




           GlassFish Users Group Japan
12/06/04                                 4
金魚本をお持ちでない方は
     http://amzn.to/JavaEE6
     こちらから、、、




             GlassFish Users Group Japan
12/06/04                                   5
社内JavaEE6勉強会 #bje_study
• 各要素技術ごとに講師を募り隔週で開催中
     – 講師には金魚本プレゼント
     – 毎回15人前後の参加者
• slideshareで資料公開中
     –     JavaEE6概要 http://slidesha.re/I0cXjt
     –     JPA http://slidesha.re/I7XkHs
     –     EJB http://slidesha.re/JuOA0c
     –     JSF http://slidesha.re/L0MiDt
     –     JMS 6/13予定
     –     JAX-WS 6/27予定
     –     JAX-RS 7/4予定

                       GlassFish Users Group Japan
12/06/04                                             6
ここから本題
• JavaEEとSpringの現在
• JavaEE6とSpring3の違い
• どっちを使う?




            GlassFish Users Group Japan
12/06/04                                  7
本日の発表内容は個人の見解で
     あり、所属企業とは一切関係あ
     りません



           GlassFish Users Group Japan
12/06/04                                 8
JavaEEとSpringの
                      現在



           GlassFish Users Group Japan
12/06/04                                 9
質問:何でWebアプリケーションを開発してい
ますか?
•   Struts1系+αで開発している人
•   Struts2系+αで開発している人
•   Seasarで開発している人
•   Springで開発している人
•   JavaEE5で開発している人
•   JavaEE6で開発している人
•   その他(Playとか、Grailsとか)




             GlassFish Users Group Japan
12/06/04                                   10
Java EE
• 言わずと知れたJavaによるWEBアプリケーション開発標
  準フレームワークスタック
• ベンダ非依存な仕様策定
• 2009年12月にJava EE 6が登場し、2011年ごろから対応
  APサーバー多数登場
     –     GlassFish 3
     –     WebLogic 12c
     –     Web Sphere 8.X
     –     JBoss AS 7
     –     Cosminexus v9
     –     TomEE など
• Web Profileの登場など、かつての重厚感はなくなり、
  開発生産性が高まった
• JSF、EJB、JPA、CDI、Bean Validationが主要テクノロ
  ジー
• J2EE時代に比べて格段に使いやすくなった
                            GlassFish Users Group Japan
12/06/04                                                  11
Spring
• 現在3.1系
     – 2012-02-16に3.1.1リリース
     – 2012-06に3.1.2リリース?
• SpringSource社による開発
• XMLによる設定が多い!という印象がある方は時代遅れ
     – 3.0以降ではほとんどの設定がアノテーションで記述可能
     – XMLベース、アノテーションベース、Javaベースの設定方法を
       自由に選べる(組み合わせ可能)
• サブプロジェクト多数
     –     Spring   Security
     –     Spring   Data
     –     Spring   Batch
     –     Spring   Mobile
     –     Spring   Social
• J2EEのアンチテーゼとして生まれたが重厚になりつつ
  ある

                               GlassFish Users Group Japan
12/06/04                                                     12
Spring -> Java EE6への動き?
• JavaEE6の普及展開に合わせて、Springに対す
  るネガティブキャンペーン?
• migration Spring to JavaEE6
     – http://www.oracle.com/technetwork/articles/jav
       a/springtojavaee-522240.html
     – https://blogs.oracle.com/arungupta/entry/why_j
       ava_ee_6_is
     – http://www.slideshare.net/ertmanb/javaone-
       2011-migrating-spring-applications-to-java-ee-
       6




                    GlassFish Users Group Japan
12/06/04                                            13
JBossのJavaEE6プロモーション
• http://www.jboss.com/promo/EE6/




           (意訳)SpringやStrutsみたいなレガシー
           なアプリをメンテナンスしてても、JBoss
           にデプロイされていたらRedHatはサポー
                     トするよ!

                 GlassFish Users Group Japan
12/06/04                                       14
Stack Overflowでの質問
• http://stackoverflow.com/questions/2499323
  /java-ee-6-vs-spring-3-stack




               2010年5月オープン
             2011年12月荒れ過ぎで閉
                     鎖
               GlassFish Users Group Japan
12/06/04                                     15
感情論、宗教論にな
       りつつある。。


           GlassFish Users Group Japan
12/06/04                                 16
JavaEE6とSpring3
                      の違い



           GlassFish Users Group Japan
12/06/04                                 17
いくつか違いをみていきます
•   構成テクノロジーの違い
•   出版書籍の違い
•   ドキュメントの違い
•   セキュリティの違い
•   IDEの違い
•   Code Generationの違い




               GlassFish Users Group Japan
12/06/04                                     18
FullJavaEE6のWEBアプリケーションモデル




           Presentation          Service        Persistence
                    Manged
                     Bean
ブラウザ          JSF                  EJB               JPA      RDBMS
              JAX-RS


                             CDI/EJBコンテナ




                       GlassFish Users Group Japan
12/06/04                                                              19
Springを使用した一般的なWEBアプリケーションモデル




           Presentation          Service        Persistence
                                                           JPA
              Spring             Spring              Spring
ブラウザ                                                             RDBMS
               MVC               (POJO)              (POJO)




                               Spring DI




                       GlassFish Users Group Japan
12/06/04                                                                 20
構成テクノロジーの違い
• WEBアプリのモデルはだいたい同じ
• 個別技術で言うと
     – JSF vs Spring MVC
           • コンポーネントベース vs アクションベース
     – CDI vs Spring DI
• だが、、Springは各層の連携が(疎ではあるが)
  強力であり、個別要素で比べるのはナンセンス

• http://orablogs-
  jp.blogspot.jp/2012/05/spring-to-java-ee-
  migration-part-4.html
  を読めば分かるが、Criticalな違いはない
                    GlassFish Users Group Japan
     – 記事中では小さなことでSpringを批判している
12/06/04                                          21
JavaEE6関連書籍




           GlassFish Users Group Japan
12/06/04                                 22
Spring3関連書籍




           GlassFish Users Group Japan
12/06/04                                 23
出版書籍の違い
• JavaEE6に関する書籍
     – 要素技術の解説形式が多い
• Spring3に関する書籍
     – 技術解説の他、クックブック形式やアプリケーショ
       ンを作りながら学ぶ形式も多い



     今後JavaEE6を使ったアプリケーション開発
     に関する書籍が出てくることを期待してま
                 す!


             GlassFish Users Group Japan
12/06/04                                   24
ドキュメントの違い
• JavaEE6
     – http://www.oracle.com/technetwork/java/javaee/
       resources-jsp-139799.html
           • サンプル
           • JavaDoc
           • Spec
           • チュートリアル
• Spring
     – http://static.springsource.org/spring/docs/3.1
       .x/spring-framework-reference/html/
           • リファレンスマニュアル
     – http://static.springsource.org/spring/docs/3.1
       .x/javadoc-api/
           • Javadoc

                       GlassFish Users Group Japan
12/06/04                                             25
セキュリティの違い
• JavaEE6
     – JAAS?
           • ドキュメントが少ないので全貌を理解していない。。。
• Spring
     – Spring Security
           • かなりパワフル




                    GlassFish Users Group Japan
12/06/04                                          26
IDEの違い
• Java EE 6
     –     NetBeans
     –     JBoss Tools
     –     Rational Application Developer
     –     MyEclipse
• Spring
     – SpringSource Tool Suite
     – MyEclipse




                        GlassFish Users Group Japan
12/06/04                                              27
Code Generationの違い
• Java EE 6
     – JBoss Forge
     – Glassfish
• Spring
     – Spring Roo
     – Spring Fuse
     – MyEclipse




                     GlassFish Users Group Japan
12/06/04                                           28
甲乙つけがたい。。




           GlassFish Users Group Japan
12/06/04                                 29
最も大きな違いは、、jarの配置場所
• JavaEEはフレームワークがAPサーバー側にある
     –     フレームワークはベンダが提供
     –     ベンダサポートあり
     –     warのサイズが小さい
     –     バージョンは自由に選べない
     –     変更のサイクルが長い
     –     APサーバーのマイグレーションは大丈夫なんでしょうか
• Springはフレームワークがアプリケーション側に
  ある
     –     好きなバージョンを選べる
     –     変更のサイクルを選べる
     –     自己責任(bugfixできる)
     –     warのサイズが大きい
                   GlassFish Users Group Japan
12/06/04                                         30
どっちを使う?



           GlassFish Users Group Japan
12/06/04                                 31
Springはプロプライエタリで危険?
• 状況
     – 開発プロセスがオープンでなく、SpringSource社の
       みで進んでいるのは確か。
           • A社のF技術のようになる可能性あり
• 実際
     – Springは1系から一貫したプログラミングモデルを
       提供
     – バージョンがあがるごとに機能追加、生産性向上を
       行ってきた
     – 3.1系はとても開発しやすい
     – 多くの拡張ポイントが用意されている


                   GlassFish Users Group Japan
12/06/04                                         32
それぞれの今後
• Spring3.2
     –     Java7対応
     –     Servlet3.0/3.1 非同期リクエストサポート
     –     JCache(JSR-107)サポート
     –     WebSocket対応?
     –     JavaEE7対応?
     –     2012-05-28に3.2 M1リリース
• JavaEE7
     – PaaS対応
     – マルチテナンシー
     – JPA2.1、EJB3.2、JAX-RS2.0、JMS2.0、
       Servlet3.1、JSF2.2、CDI1.1・・・
     – 2013年?
                    GlassFish Users Group Japan
12/06/04                                          33
宗教論争はやめよう




           GlassFish Users Group Japan
12/06/04                                 34
“標準技術を使う”の
       が目的じゃない


           GlassFish Users Group Japan
12/06/04                                 35
“保守性・拡張性の高い
       アプリケーションを効率
       良く開発する”のが目
       的!


           GlassFish Users Group Japan
12/06/04                                 36
disり合いはやめよ
       う


           GlassFish Users Group Japan
12/06/04                                 37
少数精鋭な方々は、、
• どっちでもいい(生産者高い)んじゃね?
• 慣れている方を選べば良い
• もちろんPlayやGrails等他のフレームワークを
  選んでも良い




           GlassFish Users Group Japan
12/06/04                                 38
様々なのエンジニア向け
• MVC、業務ロジック、データアクセスはどちらも
  Good
     – MVCのコンポーネントベースorアクションベースで好き嫌
       いは分かれる?
• フレームワークを提供する立場としては、個人的に
  はXMLでもアノテーションでもDIできる方が好き
     – フレームワーク用の包括的な設定は小さくXMLで定義
     – アプリケーション用の多くの設定はアノテーションで定義
     – CDIもっとがんばれ、、(ConversationScopedはGood)
• バッチ処理やJavaEE以外のサーバーサイド(Netty
  ベースなアプリ等)もカバーしたい場合、Springで
  統一的なプログラミングモデルを提供すると良さそ
  う
                GlassFish Users Group Japan
12/06/04                                      39
JavaEE6 + Spring
• 一貫性がとれていれば組み合わせても問題ない
     – 成熟したJavaEE API+Spring
     – Spring MVC + EJB + JPA
     – JSF(Spring WebFlow) + Spring + JPA
• 一貫性がとれていない組み合わせは複雑さを増
  し、保守性を低下させる恐れあり
     – Spring MVC + JSF
     – Spring + CDI




                    GlassFish Users Group Japan
12/06/04                                          40
正直、慣れている技術を使
えば良いと思う。。



           GlassFish Users Group Japan
12/06/04                                 41
まとめ?
• JavaEEとSpringの現在
• JavaEE6とSpring3の違い
• どっちを使う?


                どっちもGood!
           喧嘩せずに、合った技術を選びましょ
                  う!




                GlassFish Users Group Japan
12/06/04                                      42
って全然まとまっていない
ので、続きは懇親会で!



           GlassFish Users Group Japan
12/06/04                                 43
1 of 43

Recommended

Application Server 紹介 #glassfishjp by
Application Server 紹介 #glassfishjpApplication Server 紹介 #glassfishjp
Application Server 紹介 #glassfishjpYuji Kubota
2.5K views25 slides
JavaEE6 First Application #glassfishjp by
JavaEE6 First Application #glassfishjpJavaEE6 First Application #glassfishjp
JavaEE6 First Application #glassfishjpSatoshi Kubo
2.5K views75 slides
Java EEの話(仮) by
Java EEの話(仮)Java EEの話(仮)
Java EEの話(仮)Satoshi Kubo
7.9K views65 slides
最新のJava言語仕様で見るモジュールシステム #jjug by
最新のJava言語仕様で見るモジュールシステム #jjug最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjugJustSystems Corporation
1.3K views19 slides
Java女子部 Java EEハンズオン(応用編) by
Java女子部 Java EEハンズオン(応用編)Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Misaki Kajiura
2.9K views47 slides
JSF2.2で簡単webアプリケーション開発 by
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発Masuji Katoda
30.2K views78 slides

More Related Content

What's hot

インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~ by
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~JustSystems Corporation
3.1K views18 slides
Jsf アプリ作ったった by
Jsf アプリ作ったったJsf アプリ作ったった
Jsf アプリ作ったったOda Shinsuke
2.5K views25 slides
Play ja 3_update by
Play ja 3_updatePlay ja 3_update
Play ja 3_updateTakafumi Ikeda
2.2K views35 slides
Play jjug2012spring by
Play jjug2012springPlay jjug2012spring
Play jjug2012springTakafumi Ikeda
4.7K views98 slides
JenkinsとSeleniumの活用事例 by
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例Takeshi Kondo
8.5K views47 slides
20150920 中国地方db勉強会 by
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
2.1K views58 slides

What's hot(11)

インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~ by JustSystems Corporation
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
Jsf アプリ作ったった by Oda Shinsuke
Jsf アプリ作ったったJsf アプリ作ったった
Jsf アプリ作ったった
Oda Shinsuke2.5K views
JenkinsとSeleniumの活用事例 by Takeshi Kondo
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
Takeshi Kondo8.5K views
20150920 中国地方db勉強会 by yoyamasaki
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
yoyamasaki2.1K views
ドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Type by Namba Kazuo
ドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Typeドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Type
ドキュメント週末趣味のAWS ElasticBeanstalk編 Health Cheack Type
Namba Kazuo1.1K views
「Selenium実践入門」で学ぶテスト自動化の世界 by Nozomi Ito
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito9.6K views
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama) by Insight Technology, Inc.
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
Selenium2でつくるテストケースの構成について by yufu yufu
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
yufu yufu22.2K views
Beginning Java EE 6 勉強会(3) #bje_study by inatus
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_study
inatus3.6K views

Similar to Pure JavaEE or Spring #glassfishjp

福井イベント by
福井イベント福井イベント
福井イベントYoshio Terada
900 views42 slides
Spring frameworkが大好きなおはなし by
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
6K views28 slides
Spring知っておきたい by
Spring知っておきたいSpring知っておきたい
Spring知っておきたいYuichi Hasegawa
4K views17 slides
Beginning Java EE 6 勉強会(1) #bje_study by
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyToshiaki Maki
7.5K views44 slides
JDKの選択肢とサーバーサイドでの選び方 by
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
10.2K views60 slides
Spring.project by
Spring.projectSpring.project
Spring.project広平 田村
1.5K views107 slides

Similar to Pure JavaEE or Spring #glassfishjp(20)

Spring frameworkが大好きなおはなし by Satoshi Kisanuki
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
Satoshi Kisanuki6K views
Beginning Java EE 6 勉強会(1) #bje_study by Toshiaki Maki
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_study
Toshiaki Maki7.5K views
JDKの選択肢とサーバーサイドでの選び方 by Takahiro YAMADA
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA10.2K views
これからのJDK/JVM 何を選ぶ?どう選ぶ? by Takahiro YAMADA
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA10.2K views
Javaのカルチャーとグロース - MANABIYA 2018 by Yusuke Suzuki
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
Yusuke Suzuki9.9K views
JavaとOSSとAndroid - JavaAPI訴訟問題を考える by Yusuke Suzuki
JavaとOSSとAndroid - JavaAPI訴訟問題を考えるJavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
Yusuke Suzuki4.6K views
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会 by Yusuke Suzuki
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
Yusuke Suzuki18.5K views
Java EE 6で復活するエンタープライズJavaの世界 by Takakiyo Tanaka
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
Takakiyo Tanaka2.3K views
今年はJava進化の年!今知っておくべき新しいJava by Takashi Ito
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito2.1K views
Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞... by Daisuke Nishino
Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞...Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞...
Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞...
Daisuke Nishino29.3K views
20130511 jjug ccc講演 さらばjsp JAXBとmixer2 by Y Watanabe
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Y Watanabe4.2K views
JJUG初心者のためのJava/JJUG講座 by Yusuke Suzuki
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座
Yusuke Suzuki8.1K views
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1] by David Buck
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
Ahead-of-Time Compilation with JDK 9 [Java Day Tokyo 2017 D1-A1]
David Buck186 views
Glass fishで作ったアプリをweblogicに移植してみた by Satoshi Kubo
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
Satoshi Kubo4.7K views

More from Toshiaki Maki

From Spring Boot 2.2 to Spring Boot 2.3 #jsug by
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
2.2K views146 slides
Concourse x Spinnaker #concourse_tokyo by
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoToshiaki Maki
3.6K views19 slides
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t by
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
5.2K views71 slides
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1 by
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
36.5K views149 slides
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1 by
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Toshiaki Maki
12K views64 slides
Spring Boot Actuator 2.0 & Micrometer by
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
22.9K views47 slides

More from Toshiaki Maki(20)

From Spring Boot 2.2 to Spring Boot 2.3 #jsug by Toshiaki Maki
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki2.2K views
Concourse x Spinnaker #concourse_tokyo by Toshiaki Maki
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki3.6K views
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t by Toshiaki Maki
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki5.2K views
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1 by Toshiaki Maki
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki36.5K views
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1 by Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki12K views
Spring Boot Actuator 2.0 & Micrometer by Toshiaki Maki
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki22.9K views
Open Service Broker APIとKubernetes Service Catalog #k8sjp by Toshiaki Maki
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki8.5K views
Spring Cloud Function & Project riff #jsug by Toshiaki Maki
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
Toshiaki Maki4.2K views
Introduction to Spring WebFlux #jsug #sf_a1 by Toshiaki Maki
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki18.5K views
BOSH / CF Deployment in modern ways #cf_tokyo by Toshiaki Maki
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki4.9K views
Why PCF is the best platform for Spring Boot by Toshiaki Maki
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
Toshiaki Maki7.1K views
Zipkin Components #zipkin_jp by Toshiaki Maki
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
Toshiaki Maki3.1K views
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07 by Toshiaki Maki
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki6.5K views
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo by Toshiaki Maki
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki31.5K views
実例で学ぶ、明日から使えるSpring Boot Tips #jsug by Toshiaki Maki
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki17.1K views
Spring ❤️ Kotlin #jjug by Toshiaki Maki
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
Toshiaki Maki3.8K views
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3 by Toshiaki Maki
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki18.3K views
Managing your Docker image continuously with Concourse CI by Toshiaki Maki
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
Toshiaki Maki1.7K views
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri... by Toshiaki Maki
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki22.3K views
Short Lived Tasks in Cloud Foundry #cfdtokyo by Toshiaki Maki
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki1.5K views

Recently uploaded

SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
366 views13 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
127 views64 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
73 views29 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
18 views12 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
420 views15 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
24 views17 slides

Recently uploaded(12)

SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4366 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.73 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda420 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga24 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka89 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...

Pure JavaEE or Spring #glassfishjp

  • 1. Pure Java EE or Spring? @making GlassFish Users Group Japan勉強会 June 2012 2012/06/04
  • 2. Who are you? • Toshiaki Maki @making –http://blog.ik.am –某大手SIerでR&D • 社内Javaフレームワークの整備 • Spring + Struts + iBatis… GlassFish Users Group Japan 12/06/04 2
  • 3. 金魚本翻訳一部担当 GlassFish Users Group Japan 12/06/04 3
  • 4. JavaEE、Springに限らず Javaテクノロジーが好き! GlassFish Users Group Japan 12/06/04 4
  • 5. 金魚本をお持ちでない方は http://amzn.to/JavaEE6 こちらから、、、 GlassFish Users Group Japan 12/06/04 5
  • 6. 社内JavaEE6勉強会 #bje_study • 各要素技術ごとに講師を募り隔週で開催中 – 講師には金魚本プレゼント – 毎回15人前後の参加者 • slideshareで資料公開中 – JavaEE6概要 http://slidesha.re/I0cXjt – JPA http://slidesha.re/I7XkHs – EJB http://slidesha.re/JuOA0c – JSF http://slidesha.re/L0MiDt – JMS 6/13予定 – JAX-WS 6/27予定 – JAX-RS 7/4予定 GlassFish Users Group Japan 12/06/04 6
  • 7. ここから本題 • JavaEEとSpringの現在 • JavaEE6とSpring3の違い • どっちを使う? GlassFish Users Group Japan 12/06/04 7
  • 8. 本日の発表内容は個人の見解で あり、所属企業とは一切関係あ りません GlassFish Users Group Japan 12/06/04 8
  • 9. JavaEEとSpringの 現在 GlassFish Users Group Japan 12/06/04 9
  • 10. 質問:何でWebアプリケーションを開発してい ますか? • Struts1系+αで開発している人 • Struts2系+αで開発している人 • Seasarで開発している人 • Springで開発している人 • JavaEE5で開発している人 • JavaEE6で開発している人 • その他(Playとか、Grailsとか) GlassFish Users Group Japan 12/06/04 10
  • 11. Java EE • 言わずと知れたJavaによるWEBアプリケーション開発標 準フレームワークスタック • ベンダ非依存な仕様策定 • 2009年12月にJava EE 6が登場し、2011年ごろから対応 APサーバー多数登場 – GlassFish 3 – WebLogic 12c – Web Sphere 8.X – JBoss AS 7 – Cosminexus v9 – TomEE など • Web Profileの登場など、かつての重厚感はなくなり、 開発生産性が高まった • JSF、EJB、JPA、CDI、Bean Validationが主要テクノロ ジー • J2EE時代に比べて格段に使いやすくなった GlassFish Users Group Japan 12/06/04 11
  • 12. Spring • 現在3.1系 – 2012-02-16に3.1.1リリース – 2012-06に3.1.2リリース? • SpringSource社による開発 • XMLによる設定が多い!という印象がある方は時代遅れ – 3.0以降ではほとんどの設定がアノテーションで記述可能 – XMLベース、アノテーションベース、Javaベースの設定方法を 自由に選べる(組み合わせ可能) • サブプロジェクト多数 – Spring Security – Spring Data – Spring Batch – Spring Mobile – Spring Social • J2EEのアンチテーゼとして生まれたが重厚になりつつ ある GlassFish Users Group Japan 12/06/04 12
  • 13. Spring -> Java EE6への動き? • JavaEE6の普及展開に合わせて、Springに対す るネガティブキャンペーン? • migration Spring to JavaEE6 – http://www.oracle.com/technetwork/articles/jav a/springtojavaee-522240.html – https://blogs.oracle.com/arungupta/entry/why_j ava_ee_6_is – http://www.slideshare.net/ertmanb/javaone- 2011-migrating-spring-applications-to-java-ee- 6 GlassFish Users Group Japan 12/06/04 13
  • 14. JBossのJavaEE6プロモーション • http://www.jboss.com/promo/EE6/ (意訳)SpringやStrutsみたいなレガシー なアプリをメンテナンスしてても、JBoss にデプロイされていたらRedHatはサポー トするよ! GlassFish Users Group Japan 12/06/04 14
  • 15. Stack Overflowでの質問 • http://stackoverflow.com/questions/2499323 /java-ee-6-vs-spring-3-stack 2010年5月オープン 2011年12月荒れ過ぎで閉 鎖 GlassFish Users Group Japan 12/06/04 15
  • 16. 感情論、宗教論にな りつつある。。 GlassFish Users Group Japan 12/06/04 16
  • 17. JavaEE6とSpring3 の違い GlassFish Users Group Japan 12/06/04 17
  • 18. いくつか違いをみていきます • 構成テクノロジーの違い • 出版書籍の違い • ドキュメントの違い • セキュリティの違い • IDEの違い • Code Generationの違い GlassFish Users Group Japan 12/06/04 18
  • 19. FullJavaEE6のWEBアプリケーションモデル Presentation Service Persistence Manged Bean ブラウザ JSF EJB JPA RDBMS JAX-RS CDI/EJBコンテナ GlassFish Users Group Japan 12/06/04 19
  • 20. Springを使用した一般的なWEBアプリケーションモデル Presentation Service Persistence JPA Spring Spring Spring ブラウザ RDBMS MVC (POJO) (POJO) Spring DI GlassFish Users Group Japan 12/06/04 20
  • 21. 構成テクノロジーの違い • WEBアプリのモデルはだいたい同じ • 個別技術で言うと – JSF vs Spring MVC • コンポーネントベース vs アクションベース – CDI vs Spring DI • だが、、Springは各層の連携が(疎ではあるが) 強力であり、個別要素で比べるのはナンセンス • http://orablogs- jp.blogspot.jp/2012/05/spring-to-java-ee- migration-part-4.html を読めば分かるが、Criticalな違いはない GlassFish Users Group Japan – 記事中では小さなことでSpringを批判している 12/06/04 21
  • 22. JavaEE6関連書籍 GlassFish Users Group Japan 12/06/04 22
  • 23. Spring3関連書籍 GlassFish Users Group Japan 12/06/04 23
  • 24. 出版書籍の違い • JavaEE6に関する書籍 – 要素技術の解説形式が多い • Spring3に関する書籍 – 技術解説の他、クックブック形式やアプリケーショ ンを作りながら学ぶ形式も多い 今後JavaEE6を使ったアプリケーション開発 に関する書籍が出てくることを期待してま す! GlassFish Users Group Japan 12/06/04 24
  • 25. ドキュメントの違い • JavaEE6 – http://www.oracle.com/technetwork/java/javaee/ resources-jsp-139799.html • サンプル • JavaDoc • Spec • チュートリアル • Spring – http://static.springsource.org/spring/docs/3.1 .x/spring-framework-reference/html/ • リファレンスマニュアル – http://static.springsource.org/spring/docs/3.1 .x/javadoc-api/ • Javadoc GlassFish Users Group Japan 12/06/04 25
  • 26. セキュリティの違い • JavaEE6 – JAAS? • ドキュメントが少ないので全貌を理解していない。。。 • Spring – Spring Security • かなりパワフル GlassFish Users Group Japan 12/06/04 26
  • 27. IDEの違い • Java EE 6 – NetBeans – JBoss Tools – Rational Application Developer – MyEclipse • Spring – SpringSource Tool Suite – MyEclipse GlassFish Users Group Japan 12/06/04 27
  • 28. Code Generationの違い • Java EE 6 – JBoss Forge – Glassfish • Spring – Spring Roo – Spring Fuse – MyEclipse GlassFish Users Group Japan 12/06/04 28
  • 29. 甲乙つけがたい。。 GlassFish Users Group Japan 12/06/04 29
  • 30. 最も大きな違いは、、jarの配置場所 • JavaEEはフレームワークがAPサーバー側にある – フレームワークはベンダが提供 – ベンダサポートあり – warのサイズが小さい – バージョンは自由に選べない – 変更のサイクルが長い – APサーバーのマイグレーションは大丈夫なんでしょうか • Springはフレームワークがアプリケーション側に ある – 好きなバージョンを選べる – 変更のサイクルを選べる – 自己責任(bugfixできる) – warのサイズが大きい GlassFish Users Group Japan 12/06/04 30
  • 31. どっちを使う? GlassFish Users Group Japan 12/06/04 31
  • 32. Springはプロプライエタリで危険? • 状況 – 開発プロセスがオープンでなく、SpringSource社の みで進んでいるのは確か。 • A社のF技術のようになる可能性あり • 実際 – Springは1系から一貫したプログラミングモデルを 提供 – バージョンがあがるごとに機能追加、生産性向上を 行ってきた – 3.1系はとても開発しやすい – 多くの拡張ポイントが用意されている GlassFish Users Group Japan 12/06/04 32
  • 33. それぞれの今後 • Spring3.2 – Java7対応 – Servlet3.0/3.1 非同期リクエストサポート – JCache(JSR-107)サポート – WebSocket対応? – JavaEE7対応? – 2012-05-28に3.2 M1リリース • JavaEE7 – PaaS対応 – マルチテナンシー – JPA2.1、EJB3.2、JAX-RS2.0、JMS2.0、 Servlet3.1、JSF2.2、CDI1.1・・・ – 2013年? GlassFish Users Group Japan 12/06/04 33
  • 34. 宗教論争はやめよう GlassFish Users Group Japan 12/06/04 34
  • 35. “標準技術を使う”の が目的じゃない GlassFish Users Group Japan 12/06/04 35
  • 36. “保守性・拡張性の高い アプリケーションを効率 良く開発する”のが目 的! GlassFish Users Group Japan 12/06/04 36
  • 37. disり合いはやめよ う GlassFish Users Group Japan 12/06/04 37
  • 38. 少数精鋭な方々は、、 • どっちでもいい(生産者高い)んじゃね? • 慣れている方を選べば良い • もちろんPlayやGrails等他のフレームワークを 選んでも良い GlassFish Users Group Japan 12/06/04 38
  • 39. 様々なのエンジニア向け • MVC、業務ロジック、データアクセスはどちらも Good – MVCのコンポーネントベースorアクションベースで好き嫌 いは分かれる? • フレームワークを提供する立場としては、個人的に はXMLでもアノテーションでもDIできる方が好き – フレームワーク用の包括的な設定は小さくXMLで定義 – アプリケーション用の多くの設定はアノテーションで定義 – CDIもっとがんばれ、、(ConversationScopedはGood) • バッチ処理やJavaEE以外のサーバーサイド(Netty ベースなアプリ等)もカバーしたい場合、Springで 統一的なプログラミングモデルを提供すると良さそ う GlassFish Users Group Japan 12/06/04 39
  • 40. JavaEE6 + Spring • 一貫性がとれていれば組み合わせても問題ない – 成熟したJavaEE API+Spring – Spring MVC + EJB + JPA – JSF(Spring WebFlow) + Spring + JPA • 一貫性がとれていない組み合わせは複雑さを増 し、保守性を低下させる恐れあり – Spring MVC + JSF – Spring + CDI GlassFish Users Group Japan 12/06/04 40
  • 41. 正直、慣れている技術を使 えば良いと思う。。 GlassFish Users Group Japan 12/06/04 41
  • 42. まとめ? • JavaEEとSpringの現在 • JavaEE6とSpring3の違い • どっちを使う? どっちもGood! 喧嘩せずに、合った技術を選びましょ う! GlassFish Users Group Japan 12/06/04 42