关于@ConfigurationProperties注解全解析

 更新时间:2024年11月01日 08:40:27   作者:小鲍侃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{


}

总结

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

相关文章

  • SpringBoot中添加监听器及创建线程的代码示例

    SpringBoot中添加监听器及创建线程的代码示例

    这篇文章主要介绍了SpringBoot中如何添加监听器及创建线程,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-06-06
  • Java Web之限制用户多处登录实例代码

    Java Web之限制用户多处登录实例代码

    本篇文章主要介绍了Java Web之限制用户多处登录实例代码,可以限制单个用户在多个终端登录。非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • Java并发中死锁、活锁和饥饿是什么意思

    Java并发中死锁、活锁和饥饿是什么意思

    今天看到的一篇文章,说的很好,再敲了一遍,分享一下有关于死锁、活锁及饥饿的概念和区别,感兴趣的可以了解一下
    2021-11-11
  • Spring探秘之如何妙用BeanPostProcessor

    Spring探秘之如何妙用BeanPostProcessor

    BeanPostProcessor也称为Bean后置处理器,它是Spring中定义的接口,在Spring容器的创建过程中会回调BeanPostProcessor中定义的两个方法,这篇文章主要给大家介绍了关于Spring探秘之如何妙用BeanPostProcessor的相关资料,需要的朋友可以参考下
    2022-01-01
  • 解决IDEA光标变成白色粗条的问题

    解决IDEA光标变成白色粗条的问题

    这篇文章主要介绍了解决IDEA光标变成白色粗条的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java使用短信设备发送sms短信的示例(java发送短信)

    java使用短信设备发送sms短信的示例(java发送短信)

    这篇文章主要介绍了java使用短信设备发送sms短信的示例(java发送短信),需要的朋友可以参考下
    2014-04-04
  • Java方法能定义多少个参数你知道吗

    Java方法能定义多少个参数你知道吗

    这篇文章主要给大家介绍了关于Java方法能定义多少个参数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Java Lock接口实现原理及实例解析

    Java Lock接口实现原理及实例解析

    这篇文章主要介绍了Java Lock接口实现原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 深入了解java中的string对象

    深入了解java中的string对象

    这篇文章主要介绍了java中的string对象,String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以便提升String对象的性能。对此感兴趣的朋友跟随小编一起看看吧
    2019-11-11
  • SpringBoot项目集成Swagger和swagger-bootstrap-ui及常用注解解读

    SpringBoot项目集成Swagger和swagger-bootstrap-ui及常用注解解读

    这篇文章主要介绍了SpringBoot项目集成Swagger和swagger-bootstrap-ui及常用注解解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论