0

JDBC 接続を返すクラスを Guice しようとしています。接続と資格情報は、クラスによって異なる場合があります。

Guice でこの問題を処理する最も簡単な方法は何ですか?

元:

a.java -> URL: localhost ユーザー: foo b.java -> URL: リモートサーバー ユーザー: bar

4

1 に答える 1

0

Guice では、コンストラクターで @Named アノテーションを使用して、次のように、作成するオブジェクトに正しい値が注入されるようにすることができます。

@Inject
MyObject(@Named("jdbc.url") String jdbcUrl) {
    ...
}

これらはどこから来たのですか?*Module クラスでは、次のようにプロパティをロードする必要があります。

public class MyModule extends AbstractModule {
     @Override
     protected void configure() {
          // Handle exceptions, or this won't compile
          Properties properties = new Properties();
          ClassLoader loader = MyModule.class.getClassLoader();
          URL url = loader.getResource("my.properties");
          properties.load(url.openStream());
          Names.bindProperties(binder(),props);
          // Do the binding
          bind(bla).to(Bla.class);
     }
}
于 2013-02-15T05:10:31.763 に答える