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 容器管理。
相关推荐
zzywxc7874 分钟前
AI赋能千行百业:金融、医疗、教育、制造业的落地实践与未来展望
java·人工智能·python·microsoft·金融·golang·prompt
一只学java的小汉堡12 分钟前
Spring Boot 配置详解:从引导器到注解实战(初学者指南)
java·spring boot·后端
独自破碎E18 分钟前
归并排序的递归和非递归实现
java·算法·排序算法
一叶飘零_sweeeet29 分钟前
线程同步实战指南:从 bug 根源到锁优化的终极之路
java·线程·线程同步
失散1343 分钟前
分布式专题——25 深入理解网络通信和TCP、IP协议
java·分布式·网络协议·tcp/ip·架构
zz0723203 小时前
Java 集合体系 —— List 篇
java·list·集合体系
-雷阵雨-3 小时前
数据结构——LinkedList和链表
java·开发语言·数据结构·链表·intellij-idea
fly-phantomWing6 小时前
Maven的安装与配置的详细步骤
java·后端·maven·intellij-idea
2401_841495649 小时前
【数据结构】红黑树的基本操作
java·数据结构·c++·python·算法·红黑树·二叉搜索树
学编程的小鬼9 小时前
SpringBoot 自动装配原理剖析
java·spring boot·后端