SpringBoot自动装配原理

简介: SpringBoot自动装配原理

自动装配可以说是SpringBoot的核心,在使用SpringBoot时不需要像Spring那样配置XML了。接下来就一起看看SpringBoot是怎么做到自动装配的,这也是面试容易被提问的点🥑

SpringBoot 是如何实现自动装配的?

首先看一下启动类中的@SpringBootApplication注解,通过@EnableAutoConfiguration来启用 SpringBoot 的自动配置机制。

所以我们从这个注解开始🍆

@AutoConfigurationPackage 是指定SpringBoot的扫描包,默认就是启动类所在包下的所有组件。

所以我们的重点是在AutoConfigurationImportSelector类。它实现了DeferredImportSelector接口中的selectImports方法。

该方法主要用于获取所有符合条件的类的全限定类名,这些类需要被加载到 IoC 容器中

看一下getAutoConfigurationEntry方法🌽

getCandidateConfigurations方法获取需要自动装配的所有配置类,读取META-INF/spring.factories。以引入的Druid为例,就知道该文件的位置了🥬

loadFactoryNames

  • 从当前项目的类路径中获取所有 META-INF/spring.factories 这个文件下的信息。
  • 将上面获取到的信息封装成一个 Map 返回。
  • 从返回的 Map 中通过刚才传入的 EnableAutoConfiguration.class 参数,获取该 key 下的所有值。

再来看一下spring.factories文件

这就是druid自动装配的类

SpringBoot在加载时会筛选满足@ConditionalOnMissingBean或者类似注解的条件🌰

相关文章
|
1天前
|
安全 Java 数据安全/隐私保护
SpringBoot实现二维码扫码登录的原理与详细步骤
SpringBoot实现二维码扫码登录的原理与详细步骤
121 1
|
1天前
|
XML Java 开发者
Spring Boot中的bean注入方式和原理
Spring Boot中的bean注入方式和原理
129 0
|
1天前
|
缓存 Java Maven
Spring Boot自动配置原理
Spring Boot自动配置原理
52 0
|
1天前
|
NoSQL Java 测试技术
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
字节二面:Spring Boot Redis 可重入分布式锁实现原理?
178 1
|
1天前
|
消息中间件 存储 安全
RabbiMQ原理与SpringBoot使用
RabbiMQ原理与SpringBoot使用
40 0
|
1天前
|
前端开发 搜索推荐 Java
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
|
1天前
|
XML Java 开发者
springboot 启动原理、启动过程、启动机制的介绍
【5月更文挑战第13天】Spring Boot 是一种基于 Java 的框架,用于创建独立的、生产级别的 Spring 应用程序。它的主要目标是简化 Spring 应用的初始搭建和开发过程,同时提供一系列大型项目常见的非功能性特征(如嵌入式服务器、安全性、度量、健康检查和外部化配置)。
18 3
|
1天前
|
XML Java 数据库
【SpringBoot:详解Bean装配】
【SpringBoot:详解Bean装配】
10 3
|
1天前
|
Java
SpringBoot之@Conditional衍生条件装配详解
SpringBoot之@Conditional衍生条件装配详解
|
1天前
|
Java Spring 容器
SpringBoot自动装配原理之@Import注解解析
SpringBoot自动装配原理之@Import注解解析
53 0