Spring Boot配置文件生效相关问题

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

 

你可能感兴趣的:(A)