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


}

总结

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

相关文章

  • Java程序启动时初始化数据的四种方式

    Java程序启动时初始化数据的四种方式

    本文主要介绍了Java程序启动时初始化数据的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Spring Boot Hello World的实现代码

    Spring Boot Hello World的实现代码

    这篇文章主要介绍了Spring Boot Hello World的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • MyBatis 执行动态 SQL语句详解

    MyBatis 执行动态 SQL语句详解

    大家对mybatis执行任意sql语句都了解,那么MyBatis执行动态SQL语句呢?下面脚本之家小编给大家解答下mybatis执行动态sql语句的方法,非常不错,感兴趣的朋友参考下吧
    2016-08-08
  • Java 设计模式以虹猫蓝兔的故事讲解建造者模式

    Java 设计模式以虹猫蓝兔的故事讲解建造者模式

    建造者模式,是一种对象构建模式 它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。本文将通过示例讲解建造者模式,需要的可以参考一下
    2022-04-04
  • java的多重注解(重复注解)详解

    java的多重注解(重复注解)详解

    文章主要讲述了Java中多重注解的使用,包括Java7和Java8两种方式,在Java7中,通过自定义注解容器来实现多重注解;而在Java8中,可以使用@Repeatable注解来实现多重注解,使代码更加简洁
    2026-01-01
  • idea插件访问浏览器web地址实现方式

    idea插件访问浏览器web地址实现方式

    用户分享了在IntelliJ IDEA开发插件的简要流程:新建项目、配置plugin.xml、创建工厂类、构建打包、安装并重启IDE,最后运行插件,重点在于通过Idea平台实现插件开发,与Eclipse流程类似但需注意配置细节
    2025-09-09
  • Springboot整合SpringSecurity的完整案例详解

    Springboot整合SpringSecurity的完整案例详解

    Spring Security是基于Spring生态圈的,用于提供安全访问控制解决方案的框架,Spring Security登录认证主要涉及两个重要的接口 UserDetailService和UserDetails接口,本文对Springboot整合SpringSecurity过程给大家介绍的非常详细,需要的朋友参考下吧
    2024-01-01
  • Java利用反射如何查找使用指定注解的类详解

    Java利用反射如何查找使用指定注解的类详解

    这篇文章主要给大家介绍了关于Java利用反射如何查找使用指定注解的类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • Java通过python命令执行DataX任务的实例

    Java通过python命令执行DataX任务的实例

    今天小编就为大家分享一篇Java通过python命令执行DataX任务的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • SpringBoot整合Mongodb实现增删查改的方法

    SpringBoot整合Mongodb实现增删查改的方法

    这篇文章主要介绍了SpringBoot整合Mongodb实现简单的增删查改,MongoDB是一个以分布式数据库为核心的数据库,因此高可用性、横向扩展和地理分布是内置的,并且易于使用。况且,MongoDB是免费的,开源的,感兴趣的朋友跟随小编一起看看吧
    2022-05-05

最新评论