【理解springboot自动装配原理】
理解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自动装配原理】相关推荐
- SpringBoot自动装配原理浅析
Springboot自动装配原理 SpringBoot是当下J2EE最为流行的框架,它有着轻量,快捷等特点,让程序员们可以专注在业务逻辑的编写上,而不用花太多的力气在一些环境的配置,整合组件的配置上面 ...
- 面试终极宝典:Springboot自动装配原理
Springboot的自动装配过程,网上大多都是罗列代码,即使看完了,也还存在很多的疑点.下面,这是我总结的在面试过程中介绍SpringBoot自动装配原理的话术,拿来即用就可. Springboot ...
- 刨析 SpringBoot 自动装配原理,其实很简单
J3 SpringBoot # 源码 # 自动装配 一日我在愉快得遨游时,看到有鱼友在问:SpringBoot 中引入了 Nacos 依赖为啥就可以直接使用 Nacos 中的相关功能呀! 认真思考了一 ...
- 淘宝(SpringBoot自动装配原理)
什么是 SpringBoot 自动装配 通过注解或者一些简单的配置就能在 Spring Boot 的帮助下实现某块功能 SpringBoot 是如何实现自动装配的 SpringBoot 的核心注解 S ...
- SpringBoot 自动装配原理
运行原理探究 我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起: 1.父依赖 pom.xml spring-boot-dependen ...
- springboot自动装配原理笔记一
思维导图 太长放不了截图,就看大纲吧. 从启动类的@SpringBootApplication注解开始,探究其自动装配的原理 结论 整合javaEE,解决方案和自动装配的东西都在spring-boot ...
- SpringBoot 自动装配原理解析
自动装配是 Spring Boot 的核心部分,也是 Spring Boot 功能的基础,正是由于自动装配,才 将我们从 Bean 的繁复配置中解脱出来.那么 Spring Boot 中的自动装配指的 ...
- SpringBoot自动装配原理解析——面试可以这样会回答
1. 前言 SpringBoot是目前软件中最主流的框架,无论是工作还是面试基本都有它的身影,SpringBoot主要解决了传统spring的重量级xml配置Bean,实现了自动装配:所以,我们也常在 ...
- 面试题总结(mybatis一级缓存及二级缓存、springboot自动装配原理等)
1.mybatis一级缓存及二级缓存 区别: 一级缓存的作用域是一个sqlsession内: 二级缓存作用域是针对mapper(Namespace)进行缓存: 一级缓存: 在参数和SQL完全一样的情况 ...
最新文章
- Web设计离不开的4项基本原则
- 微软开源可解释机器学习工具包lnterpretML
- linux c 创建子进程 执行任务
- 团队愿景和团队章程的问答?
- C#学习笔记二(函数高级参数)
- 《软件需求模式》阅读笔记01
- Python 去除序列s中的重复元素
- linux(4):Linux逻辑卷详解总结
- Vant-UI 表单组件(Field组件):验证表单元素表单提交 - 踩坑篇
- 文件服务和对象存储服务器,对象存储与块存储服务
- BeautifulSoup库用法总结
- 信道模型时延和路径增益:cost207,cost2100,cost259,cost273,SCM,I-METRA,WINNER II
- 【游戏开发实战】Unity逆向怀旧经典游戏《寻秦OL》,解析二进制动画文件生成预设并播放(资源逆向 | 二进制 | C#)
- 唯一插件化Replugin源码及原理深度剖析--唯一Hook点原理
- Beer Barrels
- 网络基础之交换机原理及4大功能
- Linux命令行模式启动VMware时vmnet-dhcpd和vmnet-natd进程无法启动 VMware进程不全 解决办法
- 不借助 matlab 内置函数,生撸均值方差模型
- [汇编]四字,双字,字,字节以及四进制和32进制
- 微信扫描二维码跳转手机默认浏览器打开下载app的链接是怎么实现的