application.yml当前目录
application.yml可以放在以下位置之一:
- classpath根目录
- classpath根目录下的config目录
- jar包当前目录
- jar包当前目录下的config目录
- /config子目录的直接子目录中[1]
application.yml是一种使用YAML格式的配置文件,相比于XML等标记语言,YAML结构更清晰易读,更适合用作属性配置文件[2]。
根据代码中的getOrCreateEnvironment方法,可返回的ConfigurableEnvironment对象有ApplicationServletEnvironment、ApplicationReactiveWebEnvironment和ApplicationEnvironment,它们分别对应SERVLET、REACTIVE和NONE等WebApplicationType的环境[3]。
application.yml,application-dev.yml是先运行dev中的配置,在执行application.yml中?
是的,Spring Boot 会优先加载 application-{profile}.yml
文件,其中 {profile}
是指当前的环境配置,比如 dev
、test
、prod
等。如果没有指定环境配置,则默认为 default
。如果存在多个环境配置文件,Spring Boot 会按照以下顺序加载:
application-{profile}.yml
application-{profile}.properties
application.yml
application.properties
在加载配置文件时,会按照上面的顺序依次加载,后面的配置会覆盖前面的配置。因此,如果同时存在 application.yml
和 application-dev.yml
,则会先加载 application-dev.yml
,然后再加载 application.yml
。如果存在相同的配置项,后面的配置会覆盖前面的配置。
application.yml和bootstrap.yml的区别
application.yml
和 bootstrap.yml
都是 Spring Boot 项目中用来配置应用程序的配置文件,两者的区别在于加载顺序和配置作用范围。
bootstrap.yml
文件优先于 application.yml
文件加载,用于应用程序的引导阶段,主要用于 Spring Cloud 应用程序中的外部配置加载。比如,可以在 bootstrap.yml
中配置连接到配置中心的信息,而 application.yml
中则可以配置应用程序的通用配置。
bootstrap.yml
文件的作用范围只限于当前应用程序的上下文,而 application.yml
文件则是应用程序的全局配置文件。
综上所述,bootstrap.yml
文件主要用于 Spring Cloud 应用程序的配置加载,而 application.yml
文件则用于应用程序的通用配置。