Spring Boot属性文件的外部配置

Spring Boot属性文件的外部配置,第1张

Spring Boot属性文件的外部配置

使用外部属性文件

答案就在Spring Boot Docs中,我将尽力为您分解。

首先,不

@PropertySource
,在使用Yaml配置时,如在Yaml缺点下所述,您不应该使用:

无法通过@PropertySource批注加载YAML文件。因此,在需要以这种方式加载值的情况下,需要使用属性文件。

那么,如何加载属性文件?此处说明了应用程序属性文件

已为您加载了一个:

application.yml
,将其放在上面链接中提到的目录之一中。这对您的常规配置非常有用。

现在,对于您的环境特定的配置(以及诸如密码之类的东西),您想使用外部属性文件,该部分中还将说明如何执行此 *** 作:

如果您不喜欢application.properties作为配置文件名,则可以通过指定spring.config.name环境属性来切换到另一个。您还可以使用spring.config.location环境属性(目录位置或文件路径的逗号分隔列表)引用显式位置。

因此,您可以使用

spring.config.location
环境属性。想象一下,您有一个外部配置文件:
application-external.yml
在主目录下的conf /目录中,只需像这样添加它:
-Dspring.config.location=file:${home}/conf/application-external.yml
作为JVM的启动参数。如果您有多个文件,只需用逗号将它们分开。请注意,您可以轻松地使用此类外部属性来覆盖属性,而不仅仅是添加它们。

我建议通过使您的应用程序仅与内部application.yml文件一起使用来进行测试,然后覆盖外部属性文件中的((测试)属性)并将其值记录在某处。

将Yaml属性绑定到对象

使用Yaml属性时,通常会使用加载它们

@ConfigurationProperties
,这在使用例如列表或更复杂的属性结构时非常有用
。(这就是为什么您应该使用Yaml属性的原因,对于简单的属性,最好使用常规属性文件)。阅读此以获得更多信息:类型安全配置属性

附加:在IntelliJ,Maven和JUnit测试中加载这些属性

有时,您想在Maven构建中或执行测试时加载这些属性。或者仅用于使用IDE进行本地开发

如果使用 IntelliJ 进行开发,则可以通过将其添加到Tomcat运行配置中轻松添加它:“运行”->“编辑配置”,在“
Tomcat服务器”下选择运行配置,选中“服务器”选项卡,然后将其添加到“ VM”下选项”。

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

在IntelliJ中运行 JUnit测试 时:

  • 运行→编辑配置
  • 默认值→JUnit
  • 添加VM选项->
    -ea -Dspring.config.location=file:${home}/conf/application-external.yml


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5426830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存