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

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

相关文章:

  • Oracle 12c Docker安装问题排查 sga_target 1536M is too small
  • Mysql基础-多表查询(详细版)
  • MySQL安装多版本与版本切换
  • C语言文件操作函数详解
  • Dify部署无法拉取镜像
  • Leaflet介绍及使用示例
  • MySQL 中如何查看 SQL 的执行计划?
  • 支持selenium的chrome driver更新到133.0.6943.141
  • Java 内存泄漏排查指南:工具与实战技巧
  • 【EB-06】SystemCreator dbc转arxml
  • 网络安全内参
  • Spring Boot启动过程?
  • C语言 第一章 认识C语言
  • HD接口 和HDMI接口是一个意思么
  • python-leetcode-划分字母区间
  • 子组件如何通过v-model实现数据的双向绑定
  • 互联网怎样利用人性-思维导图-markdown
  • Selenium 调用模型接口实现功能测试
  • C++ Primer 成员访问运算符
  • python学习五
  • 做seo是什么意思/苏州排名搜索优化
  • 点点 网站建设/沧州网站优化
  • 怎么做网站的防盗链/google谷歌搜索引擎
  • 怎样做企业手机网站建设/百度竞价和优化的区别
  • 做软装什么网站可以吗/怎么开展网络营销推广
  • 一个云主机可以做多少网站/2023最新15件重大新闻