[Seasar-user:13923] Re: [S2JDBC] 複数のデータソースの使い方について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 4月 24日 (木) 16:50:04 JST


中村(taedium)です。

> public class GetJdbcManagerTest extends S2TestCase {
>     @Binding("jdbcManagerB")
>     private JdbcManager jdbcManager;
> 
>     @Override
>     protected void setUp() throws Exception {
>         include("app.dicon");
>     }
> 
>     public void testGetMessage() throws Exception {
>         Message message = jdbcManager.from(Message.class)
>             .where("id = ?", 1).getSingleResult();
>         System.out.println("message="+message.getMessage());
>     }
> }
> →→→message=aaaaと表示されます。

@Bindingは、このアノテーションを使っているクラスが、
Seasar2のコンポーネントの場合にだけ有効です。
たとえば、このGetJdbcManagerTestは、Seasar2のコンポーネント
ではないので、@Bindingは評価されず、JdbcManager型で
先に見つかったjdbcManagerAがバインディングされています。

@Bindingを使うクラスがコンポーネントの場合は
上記の書き方で問題ないのですが、S2Unitでは

  private JdbcManager jdbcManagerB;

と変数名をコンポーネント名にあわせる必要があります。
(同じインタフェースをもつ複数のコンポーネントがある場合)
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



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