JavaEE5がいい理由

Hibernateを使えば特別なEJBコンテナは不要だし、DIもSpringの方が高機能。
売りのアノテーションは、HibernateでもPersistence APIアノテーションが使えるしSpring用には自分で同等のものを実装してる。
機能面から言えばJavaEE5にはいいところはない。


ではなんでJavaEE5がいいかというと、「標準」だから。それも「使える標準」
J2EEは、標準は標準でも、「使えない標準」だった。
少なくともWebフレームワークとして何かを選択する必要があった。
JavaEE5の場合、WebフレームワークとしてJSFが含まれている。
EJB3JSFもベストではないけどベターではある。
EJB3Hibernate+Springをふまえた上でのものだし、JSFStrutsの「失敗」をふまえている。
いままで、平均的な開発組織にHibernateやSpringが勧めれたかというと、そうではなかった。
「使える」けど「標準ではない」ものは、勧めにくい。デファクトスタンダードには程遠い。
「標準」が「使える」のであれば、躊躇せず勧めれる。


また、Springと違ってEJB3のDI/AOPはシチュエーションを限定しているので、迷いにくい。そういう意味で使いやすい。
EJB3+JSFを使うと、Blue PrintsなどなくてもJSP→マネージドビーン→セッションビーン→Persistenceという4層構造になる。
つまりパターンを知らなくてもパターンにはまる。パターンを知っていればよりよい設計ができる。
EoDを目指してるだけあって、結構簡単。


最後に、J2EEの時と違ってツールが無償で使える。
いまのところ使えるのはNetBeansだけど、Eclipseも対応するし、他のツールも必ず対応する。
Hibernate+Springだとそうはいかない。


ということで、積極的な理由ではないけど、JavaEE5はいい。