■
この週末はWicket+Guice+MyBatisを動かしてみました。とりあえず動くところまでいったので、いったんまとめます。
なんでこの組み合わせ?
設定ファイルがいらないから。業務ではSeasar2を使用していますが、diconファイルがdiconファイルをインクルードするあたりで僕の守備範囲外になりました。管理しきれませんわ。ちなみに設定ファイルが嫌いなのは、タイプミスごときで貴重な時間を奪われるから。そうは言っても、タイプミスから完全に逃れることはできないのですが。SQLとかね。
Guiceは基本的にインターフェイスに実装クラスを注入するという使い方なので、自然にインターフェイスに依存するようになり、心が安らかになる。
どうやって動かすの?
まず必要なもの。
EclipseのMavenプラグインを使ってプロジェクトを構築しました。WicketのQuickStartをベースにして、GuiceとMyBatis、それからwicket-guiceとmybatis-guiceを追加する感じで。やればできると思うよ。
ここからが肝心なのに、検索だけではなかなか情報に辿りつけないところ。
まず、web.xmlを書き換えてWicketFilterからWicketServletに置き換える。WicketServletの設定方法はhttp://wicket.apache.org/apidocs/1.4/org/apache/wicket/guice/GuiceWebApplicationFactory.htmlを参考に。
次に、Moduleを作成し、WebApplicationへ自分のWebApplicationを注入する定義をする。このModuleは、WicketServletのinit-paramへ設定する。ここまでくれば、Tomcatを起動してホームページを表示することができるようになる。
で、やっとこさMyBatisの設定に移る。ここでもModuleを作成するが、MyBatisModuleを継承してください。接続文字列などの設定が簡単になるので。検索すると、
Guice.createInjector(JdbcHelper.PostgreSQL, new Module(){...});
というサンプルが見つかると思いますが、個人的には
public class XXXModule extends MyBatisModule { @Override protected void initialize() [ super.install(JdbcHelper.PostgreSQL); ... } }
という書き方の方が好き。...のところには、DataSourceProviderとか、TransactionalFactoryとか、JDBCドライバとか、ユーザーとか、パスワードとか、Serviceとか、Mapperとかの設定をする。
ここまでくれば、DBとのやりとりもできるようになる。お疲れさまでした。