我有不同的文件(yml和xml文件),我正在硬编码包含我的配置文件的相同文件夹路径。我想参数化这个路径,所以我可以移动我的配置并仅修改我的参数一次。
我的bootstrap.yml
:
...
cloud:
config:
failFast: true
server:
bootstrap: true
prefix: /config
native:
search-locations: file:///C:/dev/workspace/application/config/{profile}
我的application-dev.yml
:
...
logging:
config: file:///C:/dev/workspace/application/config/{profile}/log4j2-dev.xml
我的integration-config.xml:
<context:property-placeholder location="file:///C:/dev/workspace/application/config/${spring.profiles.active}/application-${spring.profiles.active}.properties" />
我怎样才能做到这一点?在这种情况下,最佳做法是什么?或者甚至是参考化Spring Config Server文件系统的搜索位置路径的好习惯?
spring-cloud-config
,如果你使用远程位置包含配置,问题可能会有所不同。maven
或gradle
这样的项目经理工具吗?因为maven
是我心目中的spring-boot项目构建的默认工具。对于maven,有像Maven Resources Plugin这样的插件可以将你的配置变量参数化为pom.xml
,它可以帮助你在构建步骤中为一个文件中的所有变量修改一次参数,并且与gradle
相同。spring-cloud-config
,可以将几乎所有配置属性移动到它。意味着您可以将配置属性从application-dev.yml
和integration-config.xml
移动到spring-cloud-config
的配置文件,在您的情况下是file:///C:/dev/workspace/application/config/{profile}
,它将在运行时加载为弹簧自动配置的env变量,或者您可以@Autowired
加载到Environment
,如果您想要手动获取它。