Springboot 自动化装配的原理

Springboot 自动化装配的原理

SpringBoot 主要作用为:起步依赖、自动装配。而为了实现这种功能,SpringBoot 底层主要使用了 @SpringBootApplication 注解。

首先,@SpringBootApplication 是一个复合注解 ,它结合了 @Configuration@EnableAutoConfiguration@ComponentScan 三个注解的功能。这个注解通常被用在主启动类上,用于开启 SpringBoot 的自动配置和组件扫描。

  1. @Configuration:表示 @SpringBootApplication 即为引导类同样也为配置类;
  2. @ComponentScan:让 SpringBoot 自动扫描当前包及其子包中的 @Component@Repository@Service@Controller 等能识别的注解的类,并将它们注册为 Bean。
  3. @EnableAutoConfiguration:自动装配的核心注解,底层是一个 @Import 注解,会导入一个 AutoConfigurationImportSelector 这个配置类,会自动执行 selectImports 方法,最终会去调用 SpringFactoriesLoader.loadFactoryNames 方法,去扫描 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件中所有信息,加载进内存封装成一个数组,最后会根据各种条件(起步依赖、@Conditional 相关注解)进行过滤,找到匹配条件的全类名,并封装成字符串数组到内存中。再调用 run 方法时,通过反射创建对象并交给 Spring 容器管理。
相关推荐
宋情写10 小时前
JavaAI01-LangChain4j
java·ai
安_10 小时前
java Arrays.sort 用的什么算法
java·算法·排序算法
期待のcode10 小时前
static关键字
java·后端
百***243710 小时前
小米MiMo-V2-Flash深度解析:国产开源大模型的轻量化落地革命
java·人工智能·gpt
SimonKing10 小时前
Java汉字转拼音的四种方案,99%的开发场景都够用了!
java·后端·程序员
s1mple“”10 小时前
互联网大厂Java面试实录:Spring Boot+微服务+AI技术栈深度问答
spring boot·微服务·java面试·ai技术·互联网大厂
啊西:10 小时前
SuperMap iClient3D for WebGL与iObjects Java结合实现前端动态绘制面与体的布尔运算
java·3d·webgl
s1mple“”10 小时前
基于电商场景的Java全栈面试实录:Spring Boot+微服务+AI技术深度解析
java·spring boot·微服务·高并发·分布式架构·电商系统·ai技术
Nakkhon10 小时前
软件工程实践——个人技术博客
java·开发语言