对spring-boot的自动装配理解
自动装配是spring-boot最核心的功能
自动装配解决的了什么问题:
把配置的bean(包括自己写的和第三方的sdk)自动加入到IOC容器中。在没有自动配置的时候,我们是用xml进行配置,然后加入到IOC容器
原理理解:
SpringBoot的主配置类:
里面有一个main方法运行了一个run()方法,在run方法中必须要传入一个被@SpringBootApplication注解的类。
@SpringBootApplication
SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就会运行这个类的main方法来启动SpringBoot项目。
那@SpringBootApplication注解到底是什么呢,点进去看看:
发现@SpringBootApplication是一个组合注解。
@SpringBootConfiguration
先看看@SpringBootConfiguration注解:
这个注解很简单,表明该类是一个Spring的配置类。
@Configuration主要做俩件事:一是使用了@Configuration的bean,部分属性是写在配置文件里的,允许从配置文件里修改bean相关字段的属性,比如端口、ip这些属性,在配置文件里写,通过@value注解赋值给bean中的字段;二是将这些bean加到IOC容器里
再进去看看@Configuration:
说明Spring的配置类也是Spring的一个组件。
@EnableAutoConfiguration
模块装配,就是为了实现某个功能,我们将不同的sdk放到一起,比如有功能需要用到redis、mogodb,组合成一个模块,使用@EnableAutoConfiguration可以把这个模块加入到容器里
这个注解是开启自动配置的功能。
已经有了@Confirguration,为什么还要@EnableAutoConfiguration?
因为使用@Confirguration,处理的是自己写的业务类,是放在当前的工程下面,这个注解包含@Component注解,我们知道,在启动文件同级或子级包下,带有@Component注解的bean都是可以直接被加入到IOC容器中的
@EnableAutoConfiguration是为了加载引用的Java包或者第三方sdk的
@AutoConfigurationPackage
https://blog.csdn.net/ttyy1112/article/details/101284541
注解的作用是将 添加该注解的类所在的package 作为 自动配置package 进行管理。
可以通过 AutoConfigurationPackages 工具类获取自动配置package列表。当通过注解@SpringBootApplication标注启动类时,已经为启动类添加了@AutoConfigurationPackage注解。路径为 @SpringBootApplication -> @EnableAutoConfiguration -> @AutoConfigurationPackage。也就是说当SpringBoot应用启动时默认会将启动类所在的package作为自动配置的package。
@Import({AutoConfigurationImportSelector.class})引入AutoConfigurationImportSelector.class
进入AutoConfigurationImportSelector.class
这里有一个最重要的方法:selectImports 这个方法就是用来扫描第三方sdk的配置文件(类似vue里的插件),然后把配置文件里的配置类加入到IOC容器
下面这个就是一个第三方sdk的配置文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2019-01-10 面试题总结