天天看點

@ConfigurationProperties注解全解析

@ConfigurationProperties注解全解析

@ConfigurationProperties注解類似于@value 可以将application中的配置映射到java變量中 通過@ConfigurationProperties,可以配置是否加載bean

示例:

application.yml

spring: 
  complex:   #重量級模式是否開啟 線上上可以不加載開發環境bean
    enable: true      

ConfigProperties 配置是否加載的辨別 加載為true ,不加載為fasle 對應上文配置

@ConfigurationProperties(prefix = "spring.complex")
public class ConfigProperties {
 
    private boolean enable;
 
    public boolean isEnable() {
        return enable;
    }
 
    public void setEnable(boolean enable) {
        this.enable = enable;
    }
}      

通過@EnableConfigurationProperties指定上文配置的辨別 并通過@ConditionalOnProperty判斷 下文實作如果application裡面配置的為false或者不配置(預設為false)則swagger相關配置不會加載 提高啟動速度

@Configuration(proxyBeanMethods = false)
@EnableSwagger2
@EnableConfigurationProperties(ConfigProperties.class)
@ConditionalOnProperty(prefix = "spring.complex", name = "enable", havingValue = "true", matchIfMissing = false) 指定通過spring.complex.enable屬性判斷 如果為true 則加載 預設為false
public class SwaggerConfig{
 
 
}