[Seasar-user:10314] Re: [S2Dao] 複数データソース接続時に特定ConnectionをDIする方法

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 9月 5日 (水) 01:43:11 JST


中村さん

松崎です。お世話になります。

教えていただいた方法で出来ました。
ありがとうございました!

On Tue, 04 Sep 2007 21:39:01 +0900
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]> wrote:

> 中村(taedium)です。
> 
> > 現在、S2DaoのFAQを参考にして複数データソースに接続しています。
> > http://www.seasar.org/wiki/index.php?FAQ%2FS2DAO#w7da6e0e
> > 
> > コンテナから特定のデータソースへのConnectionを受け取りたいのですが、
> > どのようにすれば実現可能でしょうか?
> 
> SeasarのAPIですがBindingアノテーションを使うのが
> 一番楽かなぁと思います。
> FAQの例をベースにするとたとえばこんな感じです。
> 
> package hogehoge.dao.dao2.impl;
> public abstract class EmpDaoImpl implements EmpDao {
> 
>   private DataSource dataSource;
> 
>   @Binding("jdbc2.dataSource")
>   public void setDataSource(DataSource dataSource) {
>     this.dataSource = dataSource;
>   }
> 
>   public Emp selectById(Integer id) {
>     Connection conn = dataSource.getConnection();
>     //・・・
>   }
> }
> 
> リンク先のcustomizer.diconの定義は少し変更する必要があります。
> 
> <component name="dao2SupportAspectCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
>   <property name="interceptorName">"dao2.interceptor"</property>
>   <initMethod name="addClassPattern">
>     <arg>"hogehoge.dao.dao2"</arg>
>     <arg>".*Dao(Impl)?"</arg>
>   </initMethod>
> </component>
> 
> > 例えばFAQのサンプルでいくと、jdbc1とjdbc2というデータソースがあって、
> > jdbc1へのConnectionを参照したいのです。
> 
> あっ、jdbc2のConnectionをとる例になっちゃいました。
> 適当に読み替えてください。
> -- 
> Toshihiro Nakamura
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

-- 
松崎 学 <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内