我的问题是关于Spring Boot的自动配置,以及是否可以根据激活的配置文件设置默认属性值。
有时,许多微服务都添加了相同的属性。例如,如果我们依靠一个招摇的客户。然后,需要在所有使用该客户端的项目中设置所有不同环境的端点URL。如果我们可以在该客户端的starterproject中进行设置,那就太好了。然后只有一个地方需要维护。
但是该属性并非在所有环境中都相同,因此应该可以在每个环境中使用默认值。有最好的方法吗?
答案 0 :(得分:1)
如果您正在使用Spring Cloud Config服务,则可以通过以下方式安排配置:
src/main/resources/
bootstrap.yml
bootstrap-profile1.yml
bootstrap-profile2.yml
...
src/main/resources/profile1/
application.yml
service1.yml
service2.yml
....
src/main/resources/profile2/
application.yml
service1.yml
service2.yml
....
每个配置文件文件夹中的application.yml将具有每个服务的默认配置,这些配置可以在该服务的配置文件中覆盖。
bootstrap.yml如下所示:
spring:
application:
name: config-service
cloud:
config:
server:
native:
search-locations: classpath:/profile1,classpath:/profile2,...
profiles:
active: native,${CONFIG_ENV}