Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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 如何在不同配置文件的属性中获取多个默认值?_Java_Spring_Spring Boot - Fatal编程技术网

Java 如何在不同配置文件的属性中获取多个默认值?

Java 如何在不同配置文件的属性中获取多个默认值?,java,spring,spring-boot,Java,Spring,Spring Boot,我有几个配置相同的微服务,每个都取决于Spring配置文件@ConfigurationProperties获取YAML应用程序配置文件中的值。我想将此配置移到一个公共项目中,并退出microservices YAML配置 问题是,对于不同的配置文件,我有两种不同的配置。我可以使用@Value注入默认值,但我只能这样做一次。有没有一种方法可以根据特定的Spring配置文件设置多个默认值 在我的项目中,我们使用Java配置,而不是XML。你的意思是像下面这样吗?我在同一个yml文件(applicat

我有几个配置相同的微服务,每个都取决于Spring配置文件
@ConfigurationProperties
获取YAML应用程序配置文件中的值。我想将此配置移到一个公共项目中,并退出microservices YAML配置

问题是,对于不同的配置文件,我有两种不同的配置。我可以使用
@Value
注入默认值,但我只能这样做一次。有没有一种方法可以根据特定的Spring配置文件设置多个默认值


在我的项目中,我们使用Java配置,而不是XML。

你的意思是像下面这样吗?我在同一个yml文件(application.yml)中有两个具有相同属性(app.port)的配置文件A1和B1。配置文件由
--


如果要从公共位置读取属性,请在微服务中写入
bootstrap.yml
,然后删除
application.yml

bootstrap.yml:

spring:
  config:
    location: file:/home/external/properties/location/
    name: application
  profiles:
    active: dev
文件位置:
/home/external/properties/location/

假设您需要dev和prod环境,那么将这3个属性文件保存在这个位置

application.yml

application-dev.yml

application-prod.yml
Spring引导首先读取
application.yml
properties。如果在
bootstrap.yml
中设置活动配置文件
dev
,则通过
application-dev.yml
设置
application.yml
overwrite


对于不同的值,只需在您的微服务的
bootstrap.yml
中更改活动配置文件。

根据我的搜索,我无法按照我的意愿解决此问题。可能
springcloudconfig
会解决我的问题,但我不想实现这个。我更改了库,不再需要这些单独的配置。

可能Spring cloud配置解决了所有问题
application.yml

application-dev.yml

application-prod.yml