我需要一些幫助來使用guice。 我在這裏的項目:https://github.com/Romain-P/kalibro/blob/master/realm/src/org/kalibro/core/Main.javaGoogle guice:幫助注入
我的問題:我需要在這個Main.java 3個噴油器,只有1個噴油器。
我的應用程序是分開的: LoginServer和WorldServers。 你只有1個realmServer和一些WorldServers。
現在,我剛剛創建了realmServer。在它,你必須: - RealmManager(負責管理球員< - >登陸服務器) - ExchangeManager(負責管理世界< - >登陸服務器)
他們接受CONNEXIONS,和他們創造的客戶,用網狀。 RealmManager & ExchangeManager擴展NetworkService。
NetworkService是一個abstractClass,可以根據需要創建所有管理器。想象一下,如果我想以後創建shopManager,它與web服務器說話。
請參閱代碼:https://github.com/Romain-P/kalibro/tree/master/realm/src/org/kalibro/network/netty
現在,我的Main.java有3個噴射器,但我需要剛剛1 但這工作!但我認爲它沒有清潔,所以我需要只有1個噴油器。
Main.java
[...]
Injector exchangeInjector = Guice.createInjector(new ExchangeModule());
Injector realmInjector = Guice.createInjector(new RealmModule());
try {
log.info("initializing exchange");
exchangeInjector.getInstance(ExchangeManager.class).run(config.getExchangePort());
log.info("initializing server");
realmInjector.getInstance(RealmManager.class).run(config.getRealmPort());
} catch(Exception e) {
log.error("Can't start application", +e.getMessage());
System.exit(1);
}
模塊:
public class RealmModule extends AbstractModule {
protected void configure() {
install(new NetworkModule());
bind(NetworkService.class).to(RealmManager.class);
}
}
//the same for ExchangeModule..
你是否需要將兩者都綁定到'NetworkService'?你使用具體的類來解析實例 - 你能否僅僅綁定到具體的類就可以了,例如'綁定(RealmManager.class);',在模塊中?然後這兩個模塊可以在一個注射器中創建。 –
編輯*請等待 –
這是不可能的,因爲我在networkServiceHandler中注入networkService,他不知道經理使用 –