Spring中的@EnableConfigurationProperties使用方式以及作用详解

 更新时间:2024年01月31日 09:47:54   作者:搏·梦  
这篇文章主要介绍了Spring中的@EnableConfigurationProperties使用方式以及作用详解,使用了 @ConfigurationProperties 注解的配置类生效,将该类注入到 IOC 容器中,交由 IOC 容器进行管理,此时则不用再配置类上加上@Component,需要的朋友可以参考下

@ConfigurationProperties

在@ConfigurationProperties的使用,把配置类的属性与yml配置文件绑定起来的时候,还需要加上@Component注解才能绑定并注入IOC容器中,若不加上@Component,则会无效。

@EnableConfigurationProperties的作用:则是将让使用了 @ConfigurationProperties 注解的配置类生效,将该类注入到 IOC 容器中,交由 IOC 容器进行管理,此时则不用再配置类上加上@Component。

代码例子

1. @ConfigurationProperties的使用

(提外话:具体的yml文件字符串、List、Map的书写方式并使用@ConfigurationProperties注入配置类.)

配置类

@Component
@ConfigurationProperties(prefix = "demo")
@Data
public class DemoConfig {
    private String userName;
    private String age;
}

yml配置文件

demo:
  user-name: hello
  age: 18

测试代码

@Component
public class demo implements ApplicationRunner {

    @Autowired
    DemoConfig demoConfig;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(demoConfig);
    }
}

结果图:

在这里插入图片描述

2. @EnableConfigurationProperties的使用

当去掉配置类的@Component时候,则会报下面错误提示:

在这里插入图片描述

在测试代码上加上@EnableConfigurationProperties,参数指定那个配置类,该配置类上必须得有@ConfigurationProperties注解

@Component
@EnableConfigurationProperties(DemoConfig.class)
public class demo implements ApplicationRunner {

    @Autowired
    DemoConfig demoConfig;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(demoConfig);
    }
}

结果图,仍然可以绑定

在这里插入图片描述

3. 为什么会有@EnableConfigurationProperties出现呢?

  • 有的人可能会问,直接在配置类上加@Component注解,不就可以了吗,为什么还要有@EnableConfigurationProperties出现呢?
  • 敬请期待,待我写到EnableAutoConfiguration自动装配的时候,会豁然开朗滴。

到此这篇关于Spring中的@EnableConfigurationProperties使用方式以及作用详解的文章就介绍到这了,更多相关@EnableConfigurationProperties的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Spring循环依赖的解决方案

    详解Spring循环依赖的解决方案

    这篇文章主要介绍了详解Spring循环依赖的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java的Stream入门级教程

    Java的Stream入门级教程

    Java的Stream(流)是从Java 8 引入的一套面向集合数据的声明式处理API,它让你像写“数据流水线”一样,对一组元素做筛选、变换、聚合等操作,代码更简洁、更可读,本文给大家介绍Java的Stream入门级教程,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Spring整合JUnit详解

    Spring整合JUnit详解

    Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,这篇文章主要介绍如何配置数据源、注解开发以及整合Junit,感兴趣的同学可以参考一下
    2023-04-04
  • java 中死锁问题的实例详解

    java 中死锁问题的实例详解

    这篇文章主要介绍了java 中死锁问题的实例详解的相关资料,希望通过本文大家能够理解掌握死锁的问题,需要的朋友可以参考下
    2017-09-09
  • Spring事务管理配置文件问题排查

    Spring事务管理配置文件问题排查

    这篇文章主要介绍了Spring事务管理配置文件问题排查,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • springboot项目实现定时备份数据库导出sql文件方式

    springboot项目实现定时备份数据库导出sql文件方式

    这篇文章主要介绍了springboot项目实现定时备份数据库导出sql文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Mybatis-Spring连接mysql 8.0配置步骤出错的解决方法

    Mybatis-Spring连接mysql 8.0配置步骤出错的解决方法

    这篇文章主要为大家详细介绍了Mybatis-Spring连接mysql 8.0配置步骤出错的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • springboot实现返回视图而不是string的方法

    springboot实现返回视图而不是string的方法

    这篇文章主要介绍了springboot实现返回视图而不是string的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Springboot集成Sentinel 组件实现基本限流功能(快速入门)

    Springboot集成Sentinel 组件实现基本限流功能(快速入门)

    Sentinel是阿里巴巴开发的面向云原生微服务的高可用流控防护组件,支持流量控制、熔断降级、系统负载保护等多维度防护,适用于秒杀、消息削峰填谷等场景,本文给大家介绍Springboot集成Sentinel组件实现基本限流功能,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • eclipse下配置Spring环境的方法步骤

    eclipse下配置Spring环境的方法步骤

    这篇文章主要介绍了eclipse下配置Spring环境的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论