Your SlideShare is downloading. ×
Pure JavaEE or Spring #glassfishjp
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pure JavaEE or Spring #glassfishjp

5,246
views

Published on

Published in: Technology

0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,246
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
83
Comments
0
Likes
14
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×