java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @ConfigurationProperties注解解析

关于@ConfigurationProperties注解全解析

作者:小鲍侃java

通过@ConfigurationProperties和@ConditionalOnProperty注解,可以实现基于配置的条件加载Bean,以此优化Spring Boot应用的启动速度,在application.yml中设置配置项,如是否加载特定的Bean(以swagger配置为例)

@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{


}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文