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的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 简单了解Java程序运行整体流程

    简单了解Java程序运行整体流程

    这篇文章主要介绍了简单了解Java程序运行整体流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java求余的技巧汇总

    java求余的技巧汇总

    这篇文章主要给大家介绍了关于java求余技巧的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • JavaWeb之Servlet注册页面的实现示例

    JavaWeb之Servlet注册页面的实现示例

    注册页面是很多网站都会是使用的到,本文主要介绍了JavaWeb之Servlet注册页面的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • java使用Socket类接收和发送数据

    java使用Socket类接收和发送数据

    Socket类是负责处理客户端通信的Java类。本文主要是介绍java使用Socket类接收和发送数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • 关于springboot 配置文件中属性变量引用方式@@解析

    关于springboot 配置文件中属性变量引用方式@@解析

    这篇文章主要介绍了关于springboot 配置文件中属性变量引用方式@@解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 关于feign对x-www-form-urlencode类型的encode和decode问题

    关于feign对x-www-form-urlencode类型的encode和decode问题

    这篇文章主要介绍了关于feign对x-www-form-urlencode类型的encode和decode问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java 实战练习之网上电商项目的实现

    Java 实战练习之网上电商项目的实现

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+vue+Springboot+ssm+mysql+maven+redis实现一个网上电商项目,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Java synchronized与CAS使用方式详解

    Java synchronized与CAS使用方式详解

    提到Java的知识点一定会有多线程,JDK版本不断的更迭很多新的概念和方法也都响应提出,但是多线程和线程安全一直是一个重要的关注点。比如说我们一入门就学习的synchronized怎么个实现和原理,还有总是被提到的CAS是啥,他和synchronized关系是啥?请往下看
    2023-01-01
  • 详解Java的Hibernat框架中的Map映射与SortedMap映射

    详解Java的Hibernat框架中的Map映射与SortedMap映射

    这篇文章主要介绍了Java的Hibernat框架中的Map映射与SortedMap映射,Hibernat是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Spring Cloud入门系列服务提供者总结

    Spring Cloud入门系列服务提供者总结

    这篇文章主要介绍了Spring Cloud入门系列之服务提供者总结,服务提供者使用Eureka Client组件创建 ,创建完成以后修改某文件,具体操作方法及实例代码跟随小编一起看看吧
    2021-06-06

最新评论