Pure Java EE or Spring?                                      @making     GlassFish Users Group Japan勉強会 June 2012         ...
Who are you?• Toshiaki Maki @making     –http://blog.ik.am     –某大手SIerでR&D           • 社内Javaフレームワークの整備           • Sprin...
金魚本翻訳一部担当           GlassFish Users Group Japan12/06/04                                 3
JavaEE、Springに限らず     Javaテクノロジーが好き!           GlassFish Users Group Japan12/06/04                                 4
金魚本をお持ちでない方は     http://amzn.to/JavaEE6     こちらから、、、             GlassFish Users Group Japan12/06/04                      ...
社内JavaEE6勉強会 #bje_study• 各要素技術ごとに講師を募り隔週で開催中     – 講師には金魚本プレゼント     – 毎回15人前後の参加者• slideshareで資料公開中     –     JavaEE6概要 ht...
ここから本題• JavaEEとSpringの現在• JavaEE6とSpring3の違い• どっちを使う?            GlassFish Users Group Japan12/06/04                      ...
本日の発表内容は個人の見解で     あり、所属企業とは一切関係あ     りません           GlassFish Users Group Japan12/06/04                                 8
JavaEEとSpringの                      現在           GlassFish Users Group Japan12/06/04                                 9
質問:何でWebアプリケーションを開発していますか?•   Struts1系+αで開発している人•   Struts2系+αで開発している人•   Seasarで開発している人•   Springで開発している人•   JavaEE5で開発して...
Java EE• 言わずと知れたJavaによるWEBアプリケーション開発標  準フレームワークスタック• ベンダ非依存な仕様策定• 2009年12月にJava EE 6が登場し、2011年ごろから対応  APサーバー多数登場     –    ...
Spring• 現在3.1系     – 2012-02-16に3.1.1リリース     – 2012-06に3.1.2リリース?• SpringSource社による開発• XMLによる設定が多い!という印象がある方は時代遅れ     – 3...
Spring -> Java EE6への動き?• JavaEE6の普及展開に合わせて、Springに対す  るネガティブキャンペーン?• migration Spring to JavaEE6     – http://www.oracle.c...
JBossのJavaEE6プロモーション• http://www.jboss.com/promo/EE6/           (意訳)SpringやStrutsみたいなレガシー           なアプリをメンテナンスしてても、JBoss ...
Stack Overflowでの質問• http://stackoverflow.com/questions/2499323  /java-ee-6-vs-spring-3-stack               2010年5月オープン    ...
感情論、宗教論にな       りつつある。。           GlassFish Users Group Japan12/06/04                                 16
JavaEE6とSpring3                      の違い           GlassFish Users Group Japan12/06/04                                 17
いくつか違いをみていきます•   構成テクノロジーの違い•   出版書籍の違い•   ドキュメントの違い•   セキュリティの違い•   IDEの違い•   Code Generationの違い               GlassFish ...
FullJavaEE6のWEBアプリケーションモデル           Presentation          Service        Persistence                    Manged           ...
Springを使用した一般的なWEBアプリケーションモデル           Presentation          Service        Persistence                                  ...
構成テクノロジーの違い• WEBアプリのモデルはだいたい同じ• 個別技術で言うと     – JSF vs Spring MVC           • コンポーネントベース vs アクションベース     – CDI vs Spring DI...
JavaEE6関連書籍           GlassFish Users Group Japan12/06/04                                 22
Spring3関連書籍           GlassFish Users Group Japan12/06/04                                 23
出版書籍の違い• JavaEE6に関する書籍     – 要素技術の解説形式が多い• Spring3に関する書籍     – 技術解説の他、クックブック形式やアプリケーショ       ンを作りながら学ぶ形式も多い     今後JavaEE6を...
ドキュメントの違い• JavaEE6     – http://www.oracle.com/technetwork/java/javaee/       resources-jsp-139799.html           • サンプル  ...
セキュリティの違い• JavaEE6     – JAAS?           • ドキュメントが少ないので全貌を理解していない。。。• Spring     – Spring Security           • かなりパワフル    ...
IDEの違い• Java EE 6     –     NetBeans     –     JBoss Tools     –     Rational Application Developer     –     MyEclipse• S...
Code Generationの違い• Java EE 6     – JBoss Forge     – Glassfish• Spring     – Spring Roo     – Spring Fuse     – MyEclipse...
甲乙つけがたい。。           GlassFish Users Group Japan12/06/04                                 29
最も大きな違いは、、jarの配置場所• JavaEEはフレームワークがAPサーバー側にある     –     フレームワークはベンダが提供     –     ベンダサポートあり     –     warのサイズが小さい     –    ...
どっちを使う?           GlassFish Users Group Japan12/06/04                                 31
Springはプロプライエタリで危険?• 状況     – 開発プロセスがオープンでなく、SpringSource社の       みで進んでいるのは確か。           • A社のF技術のようになる可能性あり• 実際     – Spr...
それぞれの今後• Spring3.2     –     Java7対応     –     Servlet3.0/3.1 非同期リクエストサポート     –     JCache(JSR-107)サポート     –     WebSock...
宗教論争はやめよう           GlassFish Users Group Japan12/06/04                                 34
“標準技術を使う”の       が目的じゃない           GlassFish Users Group Japan12/06/04                                 35
“保守性・拡張性の高い       アプリケーションを効率       良く開発する”のが目       的!           GlassFish Users Group Japan12/06/04                     ...
disり合いはやめよ       う           GlassFish Users Group Japan12/06/04                                 37
少数精鋭な方々は、、• どっちでもいい(生産者高い)んじゃね?• 慣れている方を選べば良い• もちろんPlayやGrails等他のフレームワークを  選んでも良い           GlassFish Users Group Japan12/...
様々なのエンジニア向け• MVC、業務ロジック、データアクセスはどちらも  Good     – MVCのコンポーネントベースorアクションベースで好き嫌       いは分かれる?• フレームワークを提供する立場としては、個人的に  はXML...
JavaEE6 + Spring• 一貫性がとれていれば組み合わせても問題ない     – 成熟したJavaEE API+Spring     – Spring MVC + EJB + JPA     – JSF(Spring WebFlow)...
正直、慣れている技術を使えば良いと思う。。           GlassFish Users Group Japan12/06/04                                 41
まとめ?• JavaEEとSpringの現在• JavaEE6とSpring3の違い• どっちを使う?                どっちもGood!           喧嘩せずに、合った技術を選びましょ                  ...
って全然まとまっていないので、続きは懇親会で!           GlassFish Users Group Japan12/06/04                                 43
Upcoming SlideShare
Loading in …5
×

Pure JavaEE or Spring #glassfishjp

6,630 views

Published on

Published in: Technology
0 Comments
17 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,630
On SlideShare
0
From Embeds
0
Number of Embeds
1,916
Actions
Shares
0
Downloads
97
Comments
0
Likes
17
Embeds 0
No embeds

No notes for slide

Pure JavaEE or Spring #glassfishjp

  1. 1. Pure Java EE or Spring? @making GlassFish Users Group Japan勉強会 June 2012 2012/06/04
  2. 2. Who are you?• Toshiaki Maki @making –http://blog.ik.am –某大手SIerでR&D • 社内Javaフレームワークの整備 • Spring + Struts + iBatis… GlassFish Users Group Japan12/06/04 2
  3. 3. 金魚本翻訳一部担当 GlassFish Users Group Japan12/06/04 3
  4. 4. JavaEE、Springに限らず Javaテクノロジーが好き! GlassFish Users Group Japan12/06/04 4
  5. 5. 金魚本をお持ちでない方は http://amzn.to/JavaEE6 こちらから、、、 GlassFish Users Group Japan12/06/04 5
  6. 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 Japan12/06/04 6
  7. 7. ここから本題• JavaEEとSpringの現在• JavaEE6とSpring3の違い• どっちを使う? GlassFish Users Group Japan12/06/04 7
  8. 8. 本日の発表内容は個人の見解で あり、所属企業とは一切関係あ りません GlassFish Users Group Japan12/06/04 8
  9. 9. JavaEEとSpringの 現在 GlassFish Users Group Japan12/06/04 9
  10. 10. 質問:何でWebアプリケーションを開発していますか?• Struts1系+αで開発している人• Struts2系+αで開発している人• Seasarで開発している人• Springで開発している人• JavaEE5で開発している人• JavaEE6で開発している人• その他(Playとか、Grailsとか) GlassFish Users Group Japan12/06/04 10
  11. 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 Japan12/06/04 11
  12. 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 Japan12/06/04 12
  13. 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 Japan12/06/04 13
  14. 14. JBossのJavaEE6プロモーション• http://www.jboss.com/promo/EE6/ (意訳)SpringやStrutsみたいなレガシー なアプリをメンテナンスしてても、JBoss にデプロイされていたらRedHatはサポー トするよ! GlassFish Users Group Japan12/06/04 14
  15. 15. Stack Overflowでの質問• http://stackoverflow.com/questions/2499323 /java-ee-6-vs-spring-3-stack 2010年5月オープン 2011年12月荒れ過ぎで閉 鎖 GlassFish Users Group Japan12/06/04 15
  16. 16. 感情論、宗教論にな りつつある。。 GlassFish Users Group Japan12/06/04 16
  17. 17. JavaEE6とSpring3 の違い GlassFish Users Group Japan12/06/04 17
  18. 18. いくつか違いをみていきます• 構成テクノロジーの違い• 出版書籍の違い• ドキュメントの違い• セキュリティの違い• IDEの違い• Code Generationの違い GlassFish Users Group Japan12/06/04 18
  19. 19. FullJavaEE6のWEBアプリケーションモデル Presentation Service Persistence Manged Beanブラウザ JSF EJB JPA RDBMS JAX-RS CDI/EJBコンテナ GlassFish Users Group Japan12/06/04 19
  20. 20. Springを使用した一般的なWEBアプリケーションモデル Presentation Service Persistence JPA Spring Spring Springブラウザ RDBMS MVC (POJO) (POJO) Spring DI GlassFish Users Group Japan12/06/04 20
  21. 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. 22. JavaEE6関連書籍 GlassFish Users Group Japan12/06/04 22
  23. 23. Spring3関連書籍 GlassFish Users Group Japan12/06/04 23
  24. 24. 出版書籍の違い• JavaEE6に関する書籍 – 要素技術の解説形式が多い• Spring3に関する書籍 – 技術解説の他、クックブック形式やアプリケーショ ンを作りながら学ぶ形式も多い 今後JavaEE6を使ったアプリケーション開発 に関する書籍が出てくることを期待してま す! GlassFish Users Group Japan12/06/04 24
  25. 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 Japan12/06/04 25
  26. 26. セキュリティの違い• JavaEE6 – JAAS? • ドキュメントが少ないので全貌を理解していない。。。• Spring – Spring Security • かなりパワフル GlassFish Users Group Japan12/06/04 26
  27. 27. IDEの違い• Java EE 6 – NetBeans – JBoss Tools – Rational Application Developer – MyEclipse• Spring – SpringSource Tool Suite – MyEclipse GlassFish Users Group Japan12/06/04 27
  28. 28. Code Generationの違い• Java EE 6 – JBoss Forge – Glassfish• Spring – Spring Roo – Spring Fuse – MyEclipse GlassFish Users Group Japan12/06/04 28
  29. 29. 甲乙つけがたい。。 GlassFish Users Group Japan12/06/04 29
  30. 30. 最も大きな違いは、、jarの配置場所• JavaEEはフレームワークがAPサーバー側にある – フレームワークはベンダが提供 – ベンダサポートあり – warのサイズが小さい – バージョンは自由に選べない – 変更のサイクルが長い – APサーバーのマイグレーションは大丈夫なんでしょうか• Springはフレームワークがアプリケーション側に ある – 好きなバージョンを選べる – 変更のサイクルを選べる – 自己責任(bugfixできる) – warのサイズが大きい GlassFish Users Group Japan12/06/04 30
  31. 31. どっちを使う? GlassFish Users Group Japan12/06/04 31
  32. 32. Springはプロプライエタリで危険?• 状況 – 開発プロセスがオープンでなく、SpringSource社の みで進んでいるのは確か。 • A社のF技術のようになる可能性あり• 実際 – Springは1系から一貫したプログラミングモデルを 提供 – バージョンがあがるごとに機能追加、生産性向上を 行ってきた – 3.1系はとても開発しやすい – 多くの拡張ポイントが用意されている GlassFish Users Group Japan12/06/04 32
  33. 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 Japan12/06/04 33
  34. 34. 宗教論争はやめよう GlassFish Users Group Japan12/06/04 34
  35. 35. “標準技術を使う”の が目的じゃない GlassFish Users Group Japan12/06/04 35
  36. 36. “保守性・拡張性の高い アプリケーションを効率 良く開発する”のが目 的! GlassFish Users Group Japan12/06/04 36
  37. 37. disり合いはやめよ う GlassFish Users Group Japan12/06/04 37
  38. 38. 少数精鋭な方々は、、• どっちでもいい(生産者高い)んじゃね?• 慣れている方を選べば良い• もちろんPlayやGrails等他のフレームワークを 選んでも良い GlassFish Users Group Japan12/06/04 38
  39. 39. 様々なのエンジニア向け• MVC、業務ロジック、データアクセスはどちらも Good – MVCのコンポーネントベースorアクションベースで好き嫌 いは分かれる?• フレームワークを提供する立場としては、個人的に はXMLでもアノテーションでもDIできる方が好き – フレームワーク用の包括的な設定は小さくXMLで定義 – アプリケーション用の多くの設定はアノテーションで定義 – CDIもっとがんばれ、、(ConversationScopedはGood)• バッチ処理やJavaEE以外のサーバーサイド(Netty ベースなアプリ等)もカバーしたい場合、Springで 統一的なプログラミングモデルを提供すると良さそ う GlassFish Users Group Japan12/06/04 39
  40. 40. JavaEE6 + Spring• 一貫性がとれていれば組み合わせても問題ない – 成熟したJavaEE API+Spring – Spring MVC + EJB + JPA – JSF(Spring WebFlow) + Spring + JPA• 一貫性がとれていない組み合わせは複雑さを増 し、保守性を低下させる恐れあり – Spring MVC + JSF – Spring + CDI GlassFish Users Group Japan12/06/04 40
  41. 41. 正直、慣れている技術を使えば良いと思う。。 GlassFish Users Group Japan12/06/04 41
  42. 42. まとめ?• JavaEEとSpringの現在• JavaEE6とSpring3の違い• どっちを使う? どっちもGood! 喧嘩せずに、合った技術を選びましょ う! GlassFish Users Group Japan12/06/04 42
  43. 43. って全然まとまっていないので、続きは懇親会で! GlassFish Users Group Japan12/06/04 43

×