理解springboot自动装配原理:

最近读了小马哥(mercyblitz)Springboot编程思想(核心篇),有了一些心得和感悟,分享给大家:

1. 官网介绍了激活自动装配的方法:

* 文档提到激活自动化装配的注解 @EnableAutoConfiguration 和 @SpringBootApplication,
* 将二者选其之一标注在 @configuration 类上,但并没有说明如何装配@Configuration 类,
* 如果熟悉Spring Framework,会想到三种方法,即:
XML元素<context:component-scan>、注解 @Import 和 @ComponentScan,
而这三种装配手段又需要Spring应用上下文引导,
前者可采用ClassPathXmlApplicationContext加载,后两者需要AnnotationConfigApplicationContext注册。

2. 理解 @SpringBootApplication 注解语义:

* @SpringBootApplication 被用于激活
@EnableAutoConfiguration、@ComponentScan 和@Configuration三个注解的特性。
其中,@EnableAutoConfiguration 负责激活 Spring Boot自动装配机制,
@ComponentScan 激活@component的扫描,@Configuration声明被标注为配置类。
* 官方源码告诉我们 @SpringBootApplication 注解等同于
@EnableAutoConfiguration、@Configuration、@ComponentScan注解,且他们均使用默认属性,
* 以Spring Boot 2.0.2.Release实现为例,实际上 @SpringBootApplication 等价于
@EnableAutoConfiguration、@ComponentScan注解、@SpringbootConfiguration,
不过@ComponentScan 并非使用了默认值,而是添加了排除的TypeFilter实现:TypeExcludeFilter 和AutoConfigurationExcludeFilter,
前者是由Spring Boot1.4引入,用于查找BeanFactory中已注册的TypeExcludeFilter Bean,作为代理执行对象,
而后者从SpringBoot 1.5 开始支持,用于排除其他同时标注@Configuration 和@EnableAutoConfiguration 的类。
* 从SpringBoot 1.4 开始,@SpringBootApplication 注解不再标注Configuration,
而是@SpringbootConfiguration,不过两者在运行上没有差异,类似于对象之间的继承,
@Configuration注解上标注了@Component,@Configuration 实际上是@Component 的派生注解,
同理,@SpringbootConfiguration 标注了@Configuration。
* 因此三者之间的层次关系如下:@Component,@Configuration,@SpringbootConfiguration。

【理解springboot自动装配原理】相关推荐

  1. SpringBoot自动装配原理浅析

    Springboot自动装配原理 SpringBoot是当下J2EE最为流行的框架,它有着轻量,快捷等特点,让程序员们可以专注在业务逻辑的编写上,而不用花太多的力气在一些环境的配置,整合组件的配置上面 ...

  2. 面试终极宝典:Springboot自动装配原理

    Springboot的自动装配过程,网上大多都是罗列代码,即使看完了,也还存在很多的疑点.下面,这是我总结的在面试过程中介绍SpringBoot自动装配原理的话术,拿来即用就可. Springboot ...

  3. 刨析 SpringBoot 自动装配原理,其实很简单

    J3 SpringBoot # 源码 # 自动装配 一日我在愉快得遨游时,看到有鱼友在问:SpringBoot 中引入了 Nacos 依赖为啥就可以直接使用 Nacos 中的相关功能呀! 认真思考了一 ...

  4. 淘宝(SpringBoot自动装配原理)

    什么是 SpringBoot 自动装配 通过注解或者一些简单的配置就能在 Spring Boot 的帮助下实现某块功能 SpringBoot 是如何实现自动装配的 SpringBoot 的核心注解 S ...

  5. SpringBoot 自动装配原理

    运行原理探究 我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起: 1.父依赖 pom.xml spring-boot-dependen ...

  6. springboot自动装配原理笔记一

    思维导图 太长放不了截图,就看大纲吧. 从启动类的@SpringBootApplication注解开始,探究其自动装配的原理 结论 整合javaEE,解决方案和自动装配的东西都在spring-boot ...

  7. SpringBoot 自动装配原理解析

    自动装配是 Spring Boot 的核心部分,也是 Spring Boot 功能的基础,正是由于自动装配,才 将我们从 Bean 的繁复配置中解脱出来.那么 Spring Boot 中的自动装配指的 ...

  8. SpringBoot自动装配原理解析——面试可以这样会回答

    1. 前言 SpringBoot是目前软件中最主流的框架,无论是工作还是面试基本都有它的身影,SpringBoot主要解决了传统spring的重量级xml配置Bean,实现了自动装配:所以,我们也常在 ...

  9. 面试题总结(mybatis一级缓存及二级缓存、springboot自动装配原理等)

    1.mybatis一级缓存及二级缓存 区别: 一级缓存的作用域是一个sqlsession内: 二级缓存作用域是针对mapper(Namespace)进行缓存: 一级缓存: 在参数和SQL完全一样的情况 ...

最新文章

  1. Web设计离不开的4项基本原则
  2. 微软开源可解释机器学习工具包lnterpretML
  3. linux c 创建子进程 执行任务
  4. 团队愿景和团队章程的问答?
  5. C#学习笔记二(函数高级参数)
  6. 《软件需求模式》阅读笔记01
  7. Python 去除序列s中的重复元素
  8. linux(4):Linux逻辑卷详解总结
  9. Vant-UI 表单组件(Field组件):验证表单元素表单提交 - 踩坑篇
  10. 文件服务和对象存储服务器,对象存储与块存储服务
  11. BeautifulSoup库用法总结
  12. 信道模型时延和路径增益:cost207,cost2100,cost259,cost273,SCM,I-METRA,WINNER II
  13. 【游戏开发实战】Unity逆向怀旧经典游戏《寻秦OL》,解析二进制动画文件生成预设并播放(资源逆向 | 二进制 | C#)
  14. 唯一插件化Replugin源码及原理深度剖析--唯一Hook点原理
  15. Beer Barrels
  16. 网络基础之交换机原理及4大功能
  17. Linux命令行模式启动VMware时vmnet-dhcpd和vmnet-natd进程无法启动 VMware进程不全 解决办法
  18. 不借助 matlab 内置函数,生撸均值方差模型
  19. [汇编]四字,双字,字,字节以及四进制和32进制
  20. 微信扫描二维码跳转手机默认浏览器打开下载app的链接是怎么实现的

热门文章

  1. 手机安装https证书报错!无法安装该证书,因为无法读取该证书文件解决办法
  2. c语言实现图片缩放,图片缩放与合并(C语言实现)
  3. iOS - 技术储备列表
  4. 解决java web中safari浏览器下载后文件中文乱码问题
  5. WdatePicker使用方法
  6. 计算机软件著作权的权利归属如何确定
  7. 简述计算机在市场调研与预测中的应用,《市场调研与预测》自考试卷-20210323213815.doc-原创力文档...
  8. 笔记本外接显示器闪烁问题
  9. android 系统/本地日志打印
  10. Pinterest简介