用途:
ConfigurationProperties注解,用于在spring环境定义bean的时候。通过这个注解,把配置文件中的相关属性注入到实例化的bean中。

原理:
spring中bean的生命周期特性。容器处理ConfigurationProperties注解所标注的方法(设为M1),会调用实现了某一个实现了BeanPostProcessor的bean后置处理器,这个处理器会通过ConfigurationProperties指定的prefix从配置文件中读取属性与值,赋给M1所创建的bean的相关属性。

拓展:

  1. 可以利用这个ConfigurationProperties注解,完成自定义的bean(一般用于系统的配置属性的封装)的属性从配置文件中的加载,从而避免通过Value这种方式到处加载配置文件中的配置值。
  2. 通过自定义BeanPostProcesser实现某些特定bean实例化后的特殊操作。

更多:
spring中利用bean的生命周期内可以做到很多事情。具体的说是,bean实现一些接口,从而具有某些功能,或者获取某些值。
这些接口有:

  1. BeanNameAware
  2. BeanFactoryAware
  3. ApplicationContextAware
  4. BeanPostProcessor
  5. InitializingBean
  6. DisposableBean

SpringBoot#ConfigurationProperties注解相关的一些知识的更多相关文章

  1. 精尽Spring Boot源码分析 - @ConfigurationProperties 注解的实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  2. SpringBoot自定义属性配置以及@ConfigurationProperties注解与@Value注解区别

    我们可以在application.properties中配置自定义的属性值,为了获取这些值,我们可以使用spring提供的@value注解,还可以使用springboot提供的@Configurati ...

  3. springboot情操陶冶-@ConfigurationProperties注解解析

    承接前文springboot情操陶冶-@Configuration注解解析,本文将在前文的基础上阐述@ConfigurationProperties注解的使用 @ConfigurationProper ...

  4. springboot之使用@ConfigurationProperties注解

    springboot之使用@ConfigurationProperties注解 代码已经上传至github https://github.com/gittorlight/springboot-exam ...

  5. @ConfigurationProperties 注解使用姿势,这一篇就够了

    在编写项目代码时,我们要求更灵活的配置,更好的模块化整合.在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或 applicat ...

  6. Spring/SpringBoot常用注解总结

    转自:[Guide哥] 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使 ...

  7. SpringBoot常见注解

    0.前言 这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使用 SpringBoot 来开发项目基本没 ...

  8. 菜鸟的springboot常用注解总结

    菜鸟的springboot常用注解总结 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用 ...

  9. springboot的注解详解

    配置类相关: @PropertySource(value = "classpath:test.properties")   //我们都把配置文件写到application.yml中 ...

随机推荐

  1. word2vec词向量处理英文语料

    word2vec介绍          word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集 ...

  2. ubuntu开启mysql远程连接,并开启3306端口

    mysql -u root -p 修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip mysql& ...

  3. Plastic Sprayer Manufacturer - How Does The Sprayer Work?

    The Plastic Sprayers Manufacturer   stated that the sprayer is a very useful type of machine and a g ...

  4. SpringBoot与Mybatis整合,插件生成dao、mapper、pojo

    一.创建SpringBoot项目,引入相关依赖包 <?xml version="1.0" encoding="UTF-8"?> <projec ...

  5. JVM类的加载顺序

    前阵子看到阿里巴巴的一提面试题是关于java类的加载顺序 package com.mikey.demo.Test; class FatherVariable{ static { System.out. ...

  6. 使用eclipse部署springcloud config从GitHub上获取配置内容出现错误:Auth fail

    Eclipse点击Window > Preferences > General > Network Connections > SSH2 点击"Key Managem ...

  7. 通过Java读取xml文件内容

    读取XML中的内容就需要对XML进行解析,目前对XML进行解析的方法分为四种: 下面解析的方法是DOM4J,需要下载jar包dom4j:https://dom4j.github.io/ package ...

  8. Python 基础之面向对象初识与类的封装

    一.面向对象类的初识 1.类的定义 #三种方式:#1.class MyClass:    pass #2.推荐class MyClass():    pass #3.class MyClass(obj ...

  9. Py西游攻关之基础数据类型(四)-字典

    Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 七 Dictionary(字典) 字典是 ...

  10. request DELETE 请求

    Django对于PUT/DELETE请求并没有像POST/GET那样有一个字典结构.我们需要手动处理request.body获取参数: 第一种方式: ujson.loads(request.body. ...