Java EE 6対応したEclipse 3.6 で遊べ

EclipseでもJava EE 6対応したようです。

http://www.atmarkit.co.jp/fjava/rensai4/devtool15/devtool15_1.html

上の記事を見ると以下のものが対応しているようです。そのほかのは確認していません。

それぞれ個別に強化点をあげてみると


Servlet 3.0ではweb.xmlすら必須ファイルではなくなっています。アノテーションで設定できるほか、コードで動的に追加などが可能です。つまり、「サーブレットやフィルタそのもの」をSeasar2のコンテナから取得して起動時に設定するといったことも可能です。

JSF 2.0ではGETパラメータの受け取りやフラッシュスコープ、Ajax対応、設定ファイルいらずなどもはやJSF 1.2までとは別物です。ポストバックが前提ではなくなったのです(標準でisPostback()というメソッドが追加されていますので処理をわける場合に便利です。JSF 1.2のころはRI+woodstockで同様のメソッドがあったので多用していました)。

EJB3.1 liteではパッケージングはwarファイルのみですむようになりました。普通のクラスと一緒に置くだけです。@EJBをつけると注入されるのはJava EE 5のEJB 3から変わっていませんが、インターフェースが必須ではなくなったので実装クラスのみでいけるのが便利ですね。AOPJava EE 5からかわっていませんが引き続きアノテーションでクラス単位で個別指定やXMLでまとめて複数クラス指定などが利用できます。ただ、トランザクションAOPを利用することはないでしょう。EJBの場合デフォルトでやってくれますので。

JPA 2.0では悲観的ロックや管理状態からはずす等現実的に必要なものが増え、JDBC接続設定なども統一化されました。




と大きく変わっているJava EE 6ですが、これだけ変わっていながらも互換性があるというのがやはり強いですね。いろいろと批判的なものもあるようですが互換性を維持しつつ機能追加するのがどれだけ大変かたぶんわかるはずです。

また、Servlet 3.0以外はServlet 3.0 APIに依存していないので現行のTomcat 6で一応動きます。ELの機能が弱いのでGlassfish V3やTomcat 7RCなどServlet 3.0対応コンテナのほうがいいとは思いますが、使い慣れた手元の環境ですぐに確認できるのは利点ですね。


このへんは全部いままで書いたのでJava EE 6のエントリも参考にしてください。
http://d.hatena.ne.jp/shin/20091214/p1

JAX-RSの初期のエントリはJava EE 6開発中にアノテーションの名前等がかわっている(JavaEE 6で採用されているJAX-RS 1.1で変わった)ので注意してください。



これらのエントリは2008年から書いていましたね。そのころにはすでに英語が読めないおいらでも情報がたくさんあったということですね。なのでJavaで飯を食っている人にはこれらは知っていて当たり前のことかもしれません。

(この期間中おそらく大きく変わったのはWebBeans=>CDIくらいでしょうか。SpringとGoogleGuiceの注入方法をJSR330、つまり「@Inject」で注入するやつとしてあげて、それもJava EE 6に取り込まれました。そして議論となったCDIもJSR330の上で動いています。つまりGuiceを知っている人は注入箇所の検索等が事前知識なくすぐにわかります。ちなみにSpringFramework 3.0やGoogle Guice 2.1でJSR330対応していますので、DIコンテナを今後も利用する人は必須の知識となりました。また、「Java EE 6として対応」していますので過去のエントリにも書いたとおりServletやフィルタ、リスナ、JSFCDIのクラス等に@Injectで注入できます。CDIはもっとも手軽なDIコンテナといってよいでしょう。これが複雑だという人はおそらく他のDIコンテナもつかえないと思います)


そうでない人も大幅に開発しやすくなったJava EE 6に触れてみるいい機会です。

海外のプロダクトのサンプルとか見ているとJSFJPAEJBなどのスタンダードな技術をしっているのが前提にかかれているものが多いようです。その上で、このソフトはどういった利点があるのでこっちがいいよとか、ここが弱いのをこのライブラリで解決したとかそういう感じで必須の知識になっています。比較対象を知らないとお話になりませんからね。JSF2とかのコメント見てると最近はJavaEE 6だけで大丈夫という感じが多いイメージです。

JSFもかなり必須の知識になっていますが、中でも特にやJPAの使われまくりっぷりはすさまじいですね。永続化はほぼ汎用JPAHibernateネイティブかの2択といってもいい状態です。この2つだけサポートがあるというのが珍しくありません。


とりあえず最後にいつものまぎれこませておきます。

Java EE 6ならNetBeansマジオススメ。開発用アプリケーションサーバーのセットアップをやる必要がありませんし、アプリケーションサーバーへのJDBCドライバの配備とかも全部やってくれます。IDE起動して1分でJavaEE使ったHelloWorldまでいけます。