2013-02-15 38 views
0

我試圖Guice一個返回JDBC連接的類。 連接和憑證信息可能因類而異。取決於證書的Guice和JDBC連接

在Guice中處理這個問題最簡單的方法是什麼?

例:

a.java - >網址:本地主機用戶:富 b.java - >網址:REMOTESERVER用戶:酒吧

回答

0

在吉斯,你可以在構造函數使用@Named註釋,以便將正確的值注入到要創建的對象中,如下所示:

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

這些來自哪裏?在您的*模塊類中,您需要加載屬性,如下所示:

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); 
    } 
}