SpringBoot自动装配机制的原理

简介: SpringBoot自动装配机制的原理

自动装配是什么?


自动装配简单来说就是自动去把第三方组件的Bean装载到IOC容器里面,不需要开发人员在去写Bean相关的一个配置。



SpringBoot如何实现自动装配


在SpringBoot应用里面只需要在启动类上加上去加上@SpringBootApplication注解,就可以实现自动装配,@SpringBootApplication注解是一个复合注解,真正去实现自动装配的注解是@EnableAutoConfiguration

image.png



自动装配的实现三个核心的关键技术


  1. 引入starter,启动依赖组件的时候,组件里面必须包含一个@Confinguration配置类,在这个配置类里面,我们需要通过@Bean这个注解去声明需要装配到IOC容器里面的Bean对象。


  1. 这个配置类是放在第三方jar包里面,然后通过SpringBoot种约定优于配置,去把这个配置类的全路径,放在classpath:/META-NF/spring·factories文件里面,SpriingBoot就可以知道第三方jar包里面这个配置类的位置,这个步骤主要是用到了Spring里面的SpringFactoriesloader来完成的


  1. SpringBoot拿到所有第三方jar包里面声明的配置类以后,再通过Spring提供ImportSelector这样一个接口,来实现对这些配置类的动态加载,从而完成自动装配



SpringBoot是约定优于配置这一理念下的一个产物,所以在很多地方都会看到这一类的思想,它的出现让开发人员可以更加的聚焦在业务代码的编写上,而不需要关心和业务无关的配置,自动装配的思想在SpringFramework3.X版本里面的@Eable注解就已经有了实现的一个雏形,@Eable注解是一个模块驱动的意思


只需要增加@Eable注解就能打开某个功能,而不需要针对这个功能去做Bean的配置,@Eable注解的底层也是去帮我们自动去完成这样一个模块相关Bean的注入



相关文章
|
22小时前
|
JavaScript 前端开发 Java
基于SpringBoot+Vue实现前后端交互功能(详解Vue框架机制)
基于SpringBoot+Vue实现前后端交互功能(详解Vue框架机制)
|
22小时前
|
安全 Java 数据安全/隐私保护
SpringBoot实现二维码扫码登录的原理与详细步骤
SpringBoot实现二维码扫码登录的原理与详细步骤
120 1
|
22小时前
|
XML Java 开发者
Spring Boot中的bean注入方式和原理
Spring Boot中的bean注入方式和原理
125 0
|
22小时前
|
Java 开发者 UED
Spring Boot的全局异常处理机制
【2月更文挑战第13天】
73 0
|
22小时前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
22小时前
|
前端开发 搜索推荐 Java
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革
|
22小时前
|
XML Java 开发者
springboot 启动原理、启动过程、启动机制的介绍
【5月更文挑战第13天】Spring Boot 是一种基于 Java 的框架,用于创建独立的、生产级别的 Spring 应用程序。它的主要目标是简化 Spring 应用的初始搭建和开发过程,同时提供一系列大型项目常见的非功能性特征(如嵌入式服务器、安全性、度量、健康检查和外部化配置)。
17 3
|
22小时前
|
Java Spring 容器
SpringBoot自动装配原理之@Import注解解析
SpringBoot自动装配原理之@Import注解解析
53 0
|
22小时前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
45 0
Javaweb之SpringBootWeb案例之 SpringBoot原理的详细解析
|
22小时前
|
Java 容器 Spring
Springboot自动配置原理
Springboot自动配置原理