什么是我的最佳实践管理属性?

时间:2017-04-26 06:53:02

标签: spring web properties

我可以为最佳实践管理属性做些什么?

  1. 我想为每个部署的环境设置不同的属性。
  2. 我的一些开发人员无法检测到我的真实服务器属性。
  3. 我想使用相同的命令构建项目(使用maven。不想-P dev,-P生产选项)
  4. 我不想要太多源代码来加载我的属性。(比如implements db access)
  5. 当某些属性发生变化时,可以在不重新启动的情况下继续我的服务。
  6. 我的服务是使用spring-web开发的。

1 个答案:

答案 0 :(得分:1)

你有两个问题:

1)如何让你的属性在war文件之外,我建议你做以下事情:

@PropertySource(value={"classpath:/config.properties", "file:${configRoot}/config.properties"}, ignoreResourceNotFound = true)

然后,当您启动应用程序时,您可以将configRoot指定为JVM的系统属性,即-DconfigRoot = / var / config。然后,您可以指定将从战争中提取的默认配置。如果找不到文件:$ {configRoot} /config.properties“},则使用ignoreResourceNotFound,将使用第一个文件。即,您可以在war中使用默认值并在运行时使用JVM系统参数覆盖它。

2)如何自动刷新

查看this answer告诉spring按计划刷新它的属性: