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