gpt4 book ai didi

java - 在guice模块中注入(inject)单例

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:52 24 4
gpt4 key购买 nike

我用 guice 编写了一些模块。这些效果很好。我的模块中还有一些需要的单例或记录器,我想将它们注入(inject)到这些模块中。

例如,我有 JpaModule,需要我的配置。

配置模块:

@Singleton
public class ConfigurationModule extends AbstractModule {

@Override
protected void configure() {
bind(Configuration.class).toProvider(ConfigurationProvider.class).in(Singleton.class);
}
}

Jpa模块:

public class JpaDaoModule extends AbstractModule {

@Inject
Configuration config;

@Override
protected void configure() {
// ... Read config and do something
}
}

调用 Guice:

Guice.createInjector(new ConfigurationModule(), new JpaDaoModule());

我怎样才能做到这一点?或者我如何以 guicy 的方式向 JpaModule 提供配置?

/亲切的问候

基督教

最佳答案

这是不可能的。在 configure() 方法中,您可以设置绑定(bind)。您不能指望它们已经可用。此外,模块本身不符合注入(inject)条件。但是,您可以在提供程序或 @Provides 方法中访问 Guice 管理的实例。

@Provides
@Named("myConfigItem")
String provideSomeConfigItem(Configuration config) {
return config.get("myConfigItem");
}

关于java - 在guice模块中注入(inject)单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com