我application.properties在Spring应用程序中使用文件已有很长时间了。但是最近我遇到了application.yaml文件。这三者之间的 优先顺序 是什么?使用个人的优势(如果有)是什么?
application.properties
application.yaml
我知道这可能是愚蠢的问题。但是我对它们的用法感到困惑。
Spring Boot属性解析属性的顺序在这里描述。
不能使用application.properties 和 application.yaml。使用一种格式或另一种格式,但不能同时使用两者。无论您使用哪种文件,都将按照属性优先顺序在位置12或13(取决于文件是否打包在应用程序JAR中)进行处理。
在此处包括上述链接的摘录,以避免链接腐烂…
Spring Boot使用一个非常特殊的PropertySource顺序,该顺序旨在允许合理地覆盖值。按以下顺序考虑属性: 您的主目录上的Devtools全局设置属性(在devtools处于活动状态时,为〜/ .spring-boot- devtools.properties)。 测试上的@TestPropertySource批注。 测试中的@ SpringBootTest#properties批注属性。 命令行参数。 来自SPRING_APPLICATION_JSON的属性(嵌入在环境变量或系统属性中的内联JSON) ServletConfig的初始化参数。 ServletContext的初始化参数。 来自Java:comp / env的JNDI属性。 Java系统属性(System.getProperties())。 操作系统环境变量。 一个RandomValuePropertySource,仅具有random。*属性。 打包的jar之外的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体) 打包在jar中的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体) 打包的jar之外的应用程序属性(application.properties和YAML变体)。 打包在jar中的应用程序属性(application.properties和YAML变体)。 @Configuration类上的@PropertySource批注。 默认属性(使用SpringApplication.setDefaultProperties指定)。
Spring Boot使用一个非常特殊的PropertySource顺序,该顺序旨在允许合理地覆盖值。按以下顺序考虑属性: