Spring boot 如何在spring boot中外部化application.yml

Spring boot 如何在spring boot中外部化application.yml,spring-boot,Spring Boot,嗨,目前我的项目默认使用src/main/resources中的application.yml。我想在不同的位置使用application.yml文件,以便随时编辑属性。请提出任何想法Spring Boot允许您将配置外部化,以便您可以在不同的环境中使用相同的应用程序代码。您可以使用属性文件、YAML文件、环境变量和命令行参数来外部化配置。属性值可以通过使用@Value注释直接注入bean,通过Spring的环境抽象访问,或者通过@ConfigurationProperties绑定到结构化对象

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

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

详细资料:

设置
JAVA\u选项
环境变量示例

-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>

org.apache.maven.plugins
maven surefire插件
-Dspring.config.location=文件:${home}/conf/application-external.yml

您是否正在寻找像spring cloud这样的集中式配置管理服务器?这是微服务网关应用程序。它使用的是春天的云。但我只希望这个applicatin.yml文件可以从外部访问。我使用的是jhipster microservice网关。我使用mvnw来运行应用程序。我希望在代码中提供位置。我尝试作为参数传递,但它不起作用。@Nila请尝试使用spring.config.location环境属性。假设您在主目录下的conf/dir中有一个外部配置文件:application-external.yml,只需像这样添加它:-Dspring.config.location=file:${home}/conf/application-external.yml作为JVM的启动参数。如果有多个文件,只需用逗号分隔。请注意,您可以很容易地使用这样的外部属性来覆盖属性,而不仅仅是添加属性。@Nila更新了答案,提供了外部配置文件,位置在Maven pom.xml中。我尝试了所有方法,但它仍然从war文件(目标文件夹)中获取:-(@Nila请尝试使用类似spring.config.location的相对路径=file:///application-external.yml