kagamihogeの日記

kagamihogeの日記です。

Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava

ここんとこJBoss使ってるんだけどJava EEのこと良く知らんのよね、ということで本書を買ってきた。読み進め方としては、気になるトピックに関しては実際に環境作ってHello Worldレベルのこと試す、それ以外は読むだけに留める、というやり方にした。あと、使うコンテナは本書で取り上げてるGlassfishではなくJBoss AS 7を使用した。これは俺の趣味の問題。

実際に試してみた時にやったことは下記エントリを参照。Hello Worldレベルのことしかやってないけど。試したのは、EJB, Arquillian*1, JAX-WS, JAX-RS ぐらいかな。

EJB 3になってホントそれ以前のEJBとはベツモンになったなぁと。CDIとのあわせ技で、他のJave EEのコンポーネントとのハブになる感じ。トランザクションをコンテナ任せにできるのも面倒が無くてよい。ただ、O/Rマッパーっていうか他のミドルウェアとの通信はRDBMSしかないんでJPAだけDIしてくれればいいんや、っていう場合だとワザワザEJB使うメリットあまり無さそうだけども。トランザクション手動orコンテナ管理っていう利点があるか。

JPAについて。Hibernate使ってるんで適当に読み飛ばしたけど。個人的にはS2JDBC的なアプローチが好きなんだけど、好みの問題に過ぎないかなぁ? という印象。SQLに加えJPQLとか独自の言語を更に持ち込んじゃうのは、うーん……SQLよりシンプルな記述が出来るのがウリとはいえ、ってまぁその辺の文化圏になかなか慣れることが出来ないゆえのグチみたいなもんですはい。

JAX-RS(RESTeasy)はともかくJAX-WSは超簡単になってたのは驚いた。JAX-WSは、むかしの死ぬほどXML書かなきゃならん頃の印象しかなかったんで。なんでこんな面倒くさい思いしてまでAPIを作るメリットがわからなかったけど、今なら選択肢として上がってきそう。ただ、RESTの方がもっと簡単なのだけど……

JSFは……ビミョウすぎるというか……俺は独自のタグ使うの好きじゃないというかHTMLテンプレートの方が好きだし、webデザイナさんに対しても頭が沸騰せずに済むので。ただ、画面もプログラマがやる体制なら別にいいとは思う。ただライフサイクルとか、ややこしい仕組みの必要性がどうにもメリットが感じられない。SwingとかJavaFXとかマルチ対応できるのがウリってあるので、そういう場合には使えるのかなぁ? という感じ。申し訳ないがプレゼンテーション層だけは別のフレームワークを使わせて頂きたい、って感じ。

全般的に着実な進化してるんだなーという感想。確かに、新技術を即効で取り入れて早いスピードで発展していく、というわけではない。ただし、必要なものを足場を固めて着実に取り入れていく、というJavaらしさが良く出ている。古くて使われなくなった仕様は削除対象にして、Java EEコンテナのメンテナンス負荷を下げる活動についても本書は触れている。地味だけども長期的に見ればやった方が良い活動をやってるあたり、こなれてる感じが一層強まる。

まーぶっちゃけ目新しさとか面白みとかはマッタク無いけれど。しかし、Java EEの手堅い進化をサラッと見るにはとても良い本でした。

Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION)

Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION)

*1:これはJava EE 6とは一応無関係だけどもまぁ多少はね?