使用外部属性文件
答案就在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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)