首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Guice和常规应用程序配置

Guice和常规应用程序配置
EN

Stack Overflow用户
提问于 2011-01-26 22:48:43
回答 4查看 22.8K关注 0票数 23

对于用Java编写的监控软件,我考虑使用Google Guice作为DI提供者。项目需要从外部资源(文件或数据库)加载其配置。该应用程序设计为以独立模式或在servlet容器中运行。

目前,该配置不包含用于依赖注入的绑定或参数,只包含一些全局应用程序设置(JDBC连接定义和相关的数据库管理/监视对象)。

我看到了两个选择:

  • 使用基于文件的Guice插件(如guice-xml-config )来存储应用程序选项(这将允许在以后需要时配置DI部分)。

您是否建议将Guice用于这两个任务,或者将常规应用程序配置与依赖项注入分开?你认为最重要的优点和缺点是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-26 22:58:21

在Guice模块中创建一个属性文件很简单:

public class MyModule extends AbstractModule {

  @Override
  protected void configure() {
    try {
        Properties properties = new Properties();
        properties.load(new FileReader("my.properties"));
        Names.bindProperties(binder(), properties);
    } catch (IOException ex) {
        //...
    }
  }
} 

之后,很容易从属性切换到其他配置源。

编辑

顺便说一句,您可以通过使用@Named("myKey")对其进行注释来获得注入属性。

票数 37
EN

Stack Overflow用户

发布于 2014-01-24 21:36:06

检查调节器库:

https://github.com/Netflix/governator/wiki/Configuration-Mapping

您将获得一个@Configuration注释和几个配置提供程序。在代码中,它有助于了解您使用配置参数的位置:

@Configuration("configs.qty.things")
private int   numberOfThings = 10;

此外,您将在启动时获得一个很好的配置报告:

https://github.com/Netflix/governator/wiki/Configuration-Mapping#configuration-documentation

票数 5
EN

Stack Overflow用户

发布于 2015-12-24 02:07:12

试试maven central上提供的Guice configuration,它支持属性、HOCON和JSON格式。

您可以将属性从文件application.conf注入到您的服务中,如下所示:

@BindConfig(value = "application")
public class Service {

    @InjectConfig
    private int port;

    @InjectConfig
    private String url;

    @InjectConfig
    private Optional<Integer> timeout;

    @InjectConfig("services")
    private ServiceConfiguration services;
}

您必须将模块ConfigurationModule安装为

public class GuiceModule extends AbstractModule {
    @Override
    protected void configure() {
        install(ConfigurationModule.create());
        requestInjection(Service.class);
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4805874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档