优先级
在Spring Boot中,bootstrap和application配置文件的优先级不同,主要是因为它们在Spring Boot应用生命周期中的加载时机不同:
- bootstrap.yml/bootstrap.properties:这些文件在应用程序的早期就被加载,主要用于系统级的配置,如加密属性的解密、配置服务的设置等。bootstrap文件的加载时机在application文件之前,因此可以说它的优先级更高。(优先级高优先加载,但是会被后加载的内容覆盖)
- application.yml/application.properties:这些是Spring Boot应用程序的主要配置文件,用于配置应用程序特定的各种属性。它们在bootstrap配置之后加载。(所以application内容会覆盖bootstrap,但是实际上的优先级是bootstrap>application)
至于文件扩展名.yml、.yaml和.properties的优先级,Spring Boot并没有给出具体的优先级区分。.yml和.yaml是等效的,仅仅是YAML配置文件的不同扩展名,而.properties是另一种格式的配置文件。Spring Boot可以无缝地处理这三种文件类型,并没有明确指定这些文件类型的优先级顺序。
但是在加载时,加载的顺序是yml,yaml,properities,所以在加载配置文件时,如果有在配置文件名相同时,以properities结尾的配置文件会生效,因为以properities结尾的文件是最后被加载的,覆盖了之前的相同配置。
总结:
加载的优先级:
bootstrap > application
yml > yaml > properities
生效顺序:
application.properities > application.yaml > application.yml >
bootstrap.properities > bootstrap.yaml > bootstrap.yml