我用guice编写了一些模块。这些都很有效。 我还有一些单件或我需要的记录器,我想在这些模块中注入。
例如,我有我的JpaModule,我需要配置。
ConfigurationModule:
@Singleton
public class ConfigurationModule extends AbstractModule {
@Override
protected void configure() {
bind(Configuration.class).toProvider(ConfigurationProvider.class).in(Singleton.class);
}
}
JpaModule:
public class JpaDaoModule extends AbstractModule {
@Inject
Configuration config;
@Override
protected void configure() {
// ... Read config and do something
}
}
致电Guice:
Guice.createInjector(new ConfigurationModule(), new JpaDaoModule());
我怎样才能做到这一点?或者我如何以Jicy方式向JpaModule提供配置?
/亲切的问候
基督教
答案 0 :(得分:1)
这是不可能的。在 configure()方法中,您可以设置绑定。你不能指望它们已经可用。此外,模块本身不符合注射条件。但是,您可以访问提供程序中的Guice托管实例或 @Provides 方法。
@Provides
@Named("myConfigItem")
String provideSomeConfigItem(Configuration config) {
return config.get("myConfigItem");
}