对于用Java编写的监视软件,我考虑使用Google Guice作为DI提供程序。项目需要从外部资源(文件或数据库)加载其配置。该应用程序旨在以独立模式或servlet容器运行。
目前,该配置不包含用于依赖项注入的绑定或参数,仅包含某些全局应用程序设置(JDBC连接定义和关联的数据库管理/监视对象)。
我看到两个选择:
要么
您是否建议将Guice用于这两项任务,还是将常规应用程序配置与依赖项注入分开?您认为哪些优点和缺点最重要?
在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")。
@Named("myKey")