SpringBoot使用一个全局的配置文件,配置文件名是固定的:
application.properties 与 application.yml
一、properties配置文件
1、@PropertySource注解只支持properties文件,而不支持yml文件。
2、@PropertySource里的冒号左右都没有空格
一般使用如下:
@ConfigurationProperties 与 @Value 可以配合使用
@Data
@Configuration
@PropertySource("classpath:sunshinett.properties")
@ConfigurationProperties(prefix = "sunshine")
public class AaConfig {
@Value("${sunshine.test}")
private String iq;
private String hq;
}
sunshinett.properties文件:
sunshine.test = pig
sunshine.hq = zero
二、yml配置文件
1、除application.yml外,自定义的yml文件命名必须以 application- 开头,并注意激活。
激活如下:
application.yml中
spring:
profiles:
active: api,api2
include: api3,api4
或application.properties中
spring.profiles.active = api,api2
spring.profiles.include = api3,api4
active与include区别:active比include优先级高,active配置文件会覆盖与include配置文件中相同的配置。
相同的配置生效优先级:api2>api>api4>api3。
(active会将后面的配置文件的优先级提高,然后才是include的配置文件。
上面active中的例子表示激活了application-api.yml、 application-api2.yml文件,并且多个配置文件中相同的配置后面的配置会覆盖前面的配置,此处即api2会覆盖api中相同的配置。)
2、同一路径下同一等级下不能出现同名。
如:
spring:
profiles:
include: api
profiles:
active: api
或
spring:
profiles:
include: api
spring:
profiles:
active: api
都是不可的。
参考博客:
https://blog.csdn.net/qq_33524158/article/details/79600434
https://blog.csdn.net/happyblueice/article/details/86538843
https://blog.csdn.net/cw_hello1/article/details/79639448