当前位置: 首页 > article >正文

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 容器管理。

http://www.kler.cn/a/565311.html

相关文章:

  • vm和centos
  • 计算机视觉基础|轻量化网络设计:MobileNetV3
  • 云计算及其他计算
  • C++ 设计模式 十九:观察者模式 (读书 现代c++设计模式)
  • Spark技术系列(三):Spark算子全解析——从基础使用到高阶优化
  • 机器学习数学通关指南——泰勒公式
  • 鲲鹏麒麟离线安装Docker
  • Dify在Ubuntu20.04系统的部署
  • OSPF在校园网络的应用
  • Ollama使用笔记【更新ing】
  • MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
  • 代码随想录算法【Day57】
  • 笔记:大模型Tokens是啥?为啥大模型按Tokens收费?
  • Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调
  • Spark map与mapPartitions算子源码级深度解析
  • 在本机电脑搭建AI大模型环境的要求和模型选择
  • 一个原教旨的多路径 TCP
  • 基于Rook的Ceph云原生存储部署与实践指南(上)
  • 文字描边实现内黄外绿效果
  • 算法日记29:leetcode322零钱兑换(DFS->记忆化搜索->DP)