2016-05-21 165 views
0

我有一個叫做client的類。guice中同一類的多個實例

@requiredconstructorargs 
Class client { 

    Invoker invoker; 
    String URL: 

} 

現在我想要的是有兩個不同的客戶端實例將有不同的網址。

基本吉斯實例是

Client client(invoker){ 
    Return new client(invoker,hardcodedufl) 
} 

祈求是另一個吉斯注射。

我想要另一個具有不同url的實例。

我試過@namedbind(client.class).annotatedwith(Names.named("some value")).toinstance(client1(??)) 但是無法通過調用者。

有人可以幫忙嗎?

+1

這個問題遠離句法Java。你能否修復它,使其更容易理解你的問題在哪裏? –

回答

0

如何:

你的模塊類

@Named("primaryClient") 
@Provides 
public Client primaryClient(Invoker invoker) { 
    return new Client(invoker, "hard coded url"); 
} 

內創建此方法,然後你可以注入你的客戶是這樣的:

public void someMethod(@Named("primaryClient") Client client)

+0

我有使用@named的問題,最終我使用了一個對象列表並在列表中創建了2個實例。根據需要引用列表元素。 –

0

我創建的列表客戶。

列表listOfClient(調用者){

客戶端客戶端1 =新客戶端(調用,URL1);

Client client2 = new Client(invoker,URL2);

return Arrays.asList(client1,client2);

}

並且在需要時引用清單。

相關問題