如何在Spring Boot中外部化application.yml

时间:2019-03-26 07:37:17

标签: spring-boot

嗨,目前我的项目默认使用src / main / resources中的application.yml。我想在其他位置使用application.yml文件,以便可以随时编辑属性。请提出任何想法

1 个答案:

答案 0 :(得分:1)

Spring Boot使您可以外部化配置,以便可以在不同环境中使用相同的应用程序代码。您可以使用属性文件,YAML文件,环境变量和命令行参数来外部化配置。可以使用@Value批注将属性值直接注入到您的bean中,可以通过Spring的Environment抽象访问,也可以通过@ConfigurationProperties绑定到结构化对象。

详细信息:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-yaml

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

设置JAVA_OPTS环境变量示例

-Dspring.profiles.active=dev -Dspring.config.location=file:C:/application-external.yml

这将允许您在YML文件中提供多个配置文件,并让spring进行繁重的工作来评估正确的属性:

spring:
  profiles: dev
someproperty: devproperty
---
spring:
  profiles: test
someproperty: testproperty

要在您的Maven构建中使用外部配置文件:在pom.xml中像这样配置maven surefire插件:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
     <argLine>-Dspring.config.location=file:${home}/conf/application-external.yml
   </configuration>
</plugin>