1、同一目录下,properties配置优先级 > YAML配置优先级。
2、SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。可放置目录(优先级从高到低)
file:./config/ (当前项目路径config目录下);
file:./ (当前项目路径下);
classpath:/config/ (类路径config目录下);
classpath:/ (类路径config下).
3、同一级目录下的不用名字
①、bootstrap 由父ApplicationContext加载,比application优先加载;
②、bootstrap里面的属性不能被覆盖;
注意:配置文件优先级大于注解
4、自定义配置
批量注入@ConfigurationProperties
@Component@ConfigurationProperties(prefix = "user")public class Login{private String username;private String password;}
配置文件user.yaml:
user:username: adminpassword: 123
user.properties文件
login.username=adminlogin.password=123
@PropertySource和@ImportResource两个注解用于加载外部配置文件使用
@PropertySource通常用于属性加载配置文件,注意@PropertySource注解不支持加载yaml文件,支持properties文件。
@ImportResource通常用于加载Spring的xml配置文件
@PropertySource(value = {"classpath:config/user.properties"})//@PropertySource(value = {"classpath:config/user1.properties","classpath:config/user2.properties"})配置多个文件@Component@ConfigurationProperties(prefix = "user")public class Login{private String username;private String password;}
@ImportResource使用
SpringBoot提出零xml的配置,因此SpringBoot默认情况下时不会识别项目中Spring的xml配置文件。为了能够加载xml的配置文件,SpringBoot提供了@ImportResource注解该注解可以加载Spring的xml配置文件,通常加于启动类上。