Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理spring启动应用程序/外部配置的推荐方法?_Java_Spring_Configuration_Spring Boot - Fatal编程技术网

Java 处理spring启动应用程序/外部配置的推荐方法?

Java 处理spring启动应用程序/外部配置的推荐方法?,java,spring,configuration,spring-boot,Java,Spring,Configuration,Spring Boot,在spring boot中处理应用程序配置的推荐方法是什么?例如,我想从文件(在覆盖链中)加载一些东西,比如数据库连接详细信息。我还想从数据库本身加载其他内容(如运行时可更改的应用程序设置),还想允许用户以编程方式更改其他内容 我猜我这里真正拥有的是两个不同的用例,我只需要将它们视为单独的,用一种方式处理spring配置,用类似的方式处理应用程序配置,但我想确保我没有遗漏spring(或boot)的一些处理方式 我通常会在论坛或邮件列表上问这个问题,但我知道我们现在应该使用stackoverfl

在spring boot中处理应用程序配置的推荐方法是什么?例如,我想从文件(在覆盖链中)加载一些东西,比如数据库连接详细信息。我还想从数据库本身加载其他内容(如运行时可更改的应用程序设置),还想允许用户以编程方式更改其他内容

我猜我这里真正拥有的是两个不同的用例,我只需要将它们视为单独的,用一种方式处理spring配置,用类似的方式处理应用程序配置,但我想确保我没有遗漏spring(或boot)的一些处理方式


我通常会在论坛或邮件列表上问这个问题,但我知道我们现在应该使用stackoverflow来解决这个问题,所以请告诉我是否有更好的场所来解决这类问题。

我通常定义两个级别的配置:

  • 使用
    @value(${configurationKey:defaultValue})的默认值
    
  • 使用
    @PropertySource(${configurationLocation:classpath:}/my application.properties)的应用程序个性化配置
    
    
这样,如果在
属性Resolver
上找不到配置键,应用程序将具有默认值,并且不会引发任何异常。另外
-DconfigurationLocation=file:///properties/files/
(在本例中)可以定义一个个性化路径,在该路径中可以加载
我的应用程序.properties
文件,并覆盖默认配置值,而无需重新部署


对于存储在数据库中的配置,我会选择另一种方法,如您所指出的
commons配置

有很多选项可供选择,Spring Boot为您提供了一些不错的选项,这些选项为您提供了所需的覆盖链(使用配置文件)。我写了一篇关于这些的文章。如果您想要分布式配置管理,您可能想要探索看起来很有前途的方法,但是我还没有尝试

听起来我的建议是在春天之外做我自己的事情。。。是这样吗?