Re: Wicket + Guice + iBATIS でどうでしょう。
// ibatisの設定 bind(SqlMapClient.class).toProvider(SqlMapClientImpl.class).in( Scopes.SINGLETON);Wicket + Guice + iBATIS でどうでしょう。 - Yamkazu's Blog
Wicket + Guice + iBATIS の組み合わせでぐぐると上位に来るので。。。
上記の行はGuiceに対して、
「SqlMapClientImpl#getを呼んで取得したインスタンスをシングルトンとして扱い、SqlMapClient型のフィールドに対してInjectしなさい」
という指示になります。なので……
- DeptDaoImpl#client はSqlMapClient型でOKです。そして毎回getを呼ぶ必要はなくなります。
- SqlMapClientImpl#get の先頭にあるシングルトン化の判定は不要です。
元々Providerの主旨が、Guiceが生成できないオブジェクトの生成方法をGuiceに教える、といったものなのでInject先は生成方法とは無関係に欲しいオブジェクトが何かだけを宣言しておけば、後はGuiceが与えられたProviderを使って必要なことをやってくれるわけです。