2010-10-07 19 views
4

我有延伸AbstractGinModule谷歌GIN AbstractGinModule&GWT.Create()

像類:

public class ClientModule extends AbstractGinModule { 

    public ClientModule() { } 

@Override 
    protected void configure() { 
    ... 
    ... 
    bind(...class).annotatedWith(...).to(...class).in(Singleton.class); 
    ... 
    } 
} 

我已經是一個類綁定與基於另一個類的想法存儲在屬性文件中的值。

,如:

PARAM包含從特性文件

if(param.equals("instanceB")) 
    bind(a.class).to(b.class) 
else 
    bind(a.class).to(c.class) 

未來我有一個訪問該屬性文件,並返回與值的字符串類的值。 這個類被稱爲:InstanceParameters.java

我想在我的ClientModule中得到這個類的一個實例。 但我沒有找到任何方法來做到這一點。 我試着用:

- InstanceParameters param = new InstanceParameters(); 
- GWT.create(InstanceParameters.class); (Error because this method should only be used on the client side) 

是否有這個clientModule內訪問此InstanceParameters類的方法嗎?

謝謝您的幫助

+0

您還沒有發佈'InstanceParameters'類,但我猜測您正在使用其中的某些Java類從HDD讀取文件 - 這是GWT的JRE子集不支持的內容。你究竟想通過屬性文件「控制」編譯達到什麼目的?爲什麼不能從Java類(例如,通過註釋)那樣做? – 2010-10-07 17:34:40

+0

instanceParameters類正在使用Dictionary對象「com.google.gwt.i18n.client.Dictionary」。在InstanceParameters的構造函數中,我通過「this.parameters = Dictionary.getDictionary(」NameOfFile「);」 。這是我用來從這個文件中獲取值的方法「return parameters.get(」applicationTitleShort「);」。通常它應該沒問題。 – AbstractMan 2010-10-08 06:54:34

+0

我只是試圖用一個屬性創建一個簡單的類。 (相關的getter&setter)。我可以在ClientModule中實例化這一個。 我不明白... – AbstractMan 2010-10-08 07:01:56

回答

1

你不需要啓動應用程序前讀取文件 - 只需創建AbstractGinModule(通過GWT.create)前。因此,請將Dictionary加載到您的onModuleLoad方法中,並通過提供程序或任何其他方式將參數作爲整體InstanceParameters類或作爲提取的字符串傳遞。

+0

謝謝您的回答。我不知道我correclty理解你的答案,但我做了以下事情:在onloadModule()我收到字典,我把價值來自.property文件。我在這個loadmodule中做測試。根據不同的值,我使用一個模塊或另一個模塊。你認爲這是正確的嗎? – AbstractMan 2010-10-08 13:31:03

+0

是的,這是正確的 - 我建議將「測試」部分放入模塊本身,但是當配置(即擴展'AbstractGinModule的模塊)變得更復雜時,您的工作會更好,等等。另一方面,你必須保持更新兩個杜松子酒模塊...)我似乎無法回想起atm,但我很確定有一種方法可以將值傳遞給杜松子酒(在最壞的情況下,使用'public final static 'GWT模塊中的字段,呃)。 – 2010-10-08 14:54:11

+0

完美。同時。我會像這樣離開它。 我會調查將價值傳遞給GIN遲到。非常感謝 ;-) – AbstractMan 2010-10-08 15:31:48