Guiceをシステムに採用して半年がたち、すっかりインターフェイスが体に馴染みました。
こうなってくると永続化層のMyBatisにもインターフェイスを返して欲しくなります。
しかし、MyBatisは初期状態ではデフォルトコンストラクタがないクラスには対応していません。
ObjectFactoryの実装とバインド
この問題を解決するには、ObjectFactoryを実装し、MyBatisModule#bindObjectFactoryTypeメソッドでバインドします。
ObjectFactoryへProviderを注入
せっかくGuiceを採用しているのですから、ObjectFactoryへProviderを注入し、オブジェクトの生成を委譲しましょう。
実装したものが次のクラスです。
0 件のコメント:
コメントを投稿