作者:beat_小然 | 来源:互联网 | 2023-01-21 20:37
我一直application.properties
在Spring应用程序中使用文件.但最近我遇到了application.yaml
文件.这三者之间的优先顺序是什么,并且使用个人的优势(如果有的话).
我知道这可能是个愚蠢的问题.但我对他们的用法感到困惑.
1> glytching..:
此处描述了 Spring属性解析属性顺序.
使用application.properties
和 application.yaml
不期望.使用一种格式或另一种格式但不能同时使用.您使用的任何一个将在属性优先顺序中的位置12或13(取决于文件是否打包在应用程序JAR中)处理.
包括上面链接的摘录,以避免链接腐烂...
Spring Boot使用一个非常特殊的PropertySource命令,旨在允许合理地覆盖值.按以下顺序考虑属性:
在您的主目录上开发全局设置属性(当devtools处于活动状态时,〜/ .spring-boot-devtools.properties).
@TestPropertySource测试注释.
测试中的@ SpringBootTest#properties annotation属性.
命令行参数.
SPRING_APPLICATION_JSON中的属性(嵌入在环境变量或系统属性中的内联JSON)
ServletConfig初始化参数.
ServletContext init参数.
来自java:comp/env的JNDI属性.
Java系统属性(System.getProperties()).
OS环境变量.
RandomValuePropertySource,只具有随机属性.*.
打包jar之外的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
打包在jar中的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
打包jar之外的应用程序属性(application.properties和YAML变体).
打包在jar中的应用程序属性(application.properties和YAML变体).
@Configuration类上的@PropertySource注释.
默认属性(使用SpringApplication.setDefaultProperties指定).