Java 处理spring启动应用程序/外部配置的推荐方法?
在spring boot中处理应用程序配置的推荐方法是什么?例如,我想从文件(在覆盖链中)加载一些东西,比如数据库连接详细信息。我还想从数据库本身加载其他内容(如运行时可更改的应用程序设置),还想允许用户以编程方式更改其他内容 我猜我这里真正拥有的是两个不同的用例,我只需要将它们视为单独的,用一种方式处理spring配置,用类似的方式处理应用程序配置,但我想确保我没有遗漏spring(或boot)的一些处理方式Java 处理spring启动应用程序/外部配置的推荐方法?,java,spring,configuration,spring-boot,Java,Spring,Configuration,Spring Boot,在spring boot中处理应用程序配置的推荐方法是什么?例如,我想从文件(在覆盖链中)加载一些东西,比如数据库连接详细信息。我还想从数据库本身加载其他内容(如运行时可更改的应用程序设置),还想允许用户以编程方式更改其他内容 我猜我这里真正拥有的是两个不同的用例,我只需要将它们视为单独的,用一种方式处理spring配置,用类似的方式处理应用程序配置,但我想确保我没有遗漏spring(或boot)的一些处理方式 我通常会在论坛或邮件列表上问这个问题,但我知道我们现在应该使用stackoverfl
我通常会在论坛或邮件列表上问这个问题,但我知道我们现在应该使用stackoverflow来解决这个问题,所以请告诉我是否有更好的场所来解决这类问题。我通常定义两个级别的配置:
- 使用
@value(${configurationKey:defaultValue})的默认值李>
- 使用
@PropertySource(${configurationLocation:classpath:}/my application.properties)的应用程序个性化配置
李>
- 使用
属性Resolver
上找不到配置键,应用程序将具有默认值,并且不会引发任何异常。另外-DconfigurationLocation=file:///properties/files/
(在本例中)可以定义一个个性化路径,在该路径中可以加载我的应用程序.properties
文件,并覆盖默认配置值,而无需重新部署
对于存储在数据库中的配置,我会选择另一种方法,如您所指出的
commons配置
。有很多选项可供选择,Spring Boot为您提供了一些不错的选项,这些选项为您提供了所需的覆盖链(使用配置文件)。我写了一篇关于这些的文章。如果您想要分布式配置管理,您可能想要探索看起来很有前途的方法,但是我还没有尝试 听起来我的建议是在春天之外做我自己的事情。。。是这样吗?