みなさんこんにちは、masa です。Java 屋のみなさんは最近どんなフレームワークを使っていますか?PHP や Ruby はフルスタックの MVC フレームワークが出回っていますが、Java って昔から単一のフレームワークではなく、いくつか組み合わせて使うのがセオリーですよね。
かつては 『Struts + Hibernate or iBATIS』 といった構成が業務系では定番だったようだけど、最近の Java はフレームワークの定番はあるのかな?そんなわけで調べてみました。
Struts2, SeaSar2, Play Framework, SpringMVC, Grails などなど ・・。ネットで調べるとまだ古い情報も出ますね。
本屋に行ってみると、”平積み”されていた本は
『Play FrameWork』 と 『Spring MVC』 の二つだった。
立ち読みしてみると、Play のほうはサーブレットや JSP を使わないフルスタック系で、SpringMVC は 基本的に C(コントローラー)と V(ビュー)が実装されていて、M(モデル)にあたる部分は他のライブラリを組み合わせて使うもののようだ。
SpringMVC の本のなかに Grails という Groovy ベースのフレームワークの説明もあった。Groovy だと微妙に Java と書き方が違くなってくるので今回はパスすることに。
Spring は
・歴史が古い
・日本語情報が結構多い
・ERPなどでも使用された実績がある
・DIコンテナがアノテーションで使えるようになっている
・Spring Boot など便利なコンポーネントがある
という観点から、今回は SpringMVC に決めました。
さて、M(モデル)の部分はどうするかと考えて調べていると、iBATIS が『MyBatis』に名前変更されていることを知る。これは通常の O/R マッパーのようにオブジェクトとテーブルをがっつりマッピングするのではなく、オブジェクトと SQL をマッピングする薄いマッパーのようだ。それと、MyBatis Generator という初期ファイルを自動生成してくれる機能も入れられるのでこれを使うことにした。
というわけで今回は『SpringMVC + MyBatis』という Java フレームワーク構成でいくことになりました。REST コントローラーも簡単に作れるし、今のところ特に問題なく開発は進んでいます。またの機会にフレームワークの詳しい使い方などを書ければいいなと思っています。
いかがでしたか?みなさんの Javaフレームワーク動向をつかむきっかけにしていただければうれしいです。