【Spring Boot自动装配】

Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的。

启动类的@SpringBootApplication注解由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解组成,三个注解共同完成自动装配;

  • @SpringBootConfiguration 注解标记启动类为配置类
  • @ComponentScan 注解实现启动时扫描启动类所在的包以及子包下所有标记为bean的类由IOC容器注册为bean
  • @EnableAutoConfiguration通过 @Import 注解导入 AutoConfigurationImportSelector类,然后通过AutoConfigurationImportSelector 类的 selectImports 方法去读取需要被自动装配的组件依赖下的spring.factories文件配置的组件的类全名,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余读取到的各个组件的类全名集合返回给IOC容器并将这些组件注册为bean。
相关推荐
_Aaron___几秒前
RAG 知识库越用越脏?先把“增量更新”设计清楚
java·人工智能
飞翔中文网2 分钟前
Java学习笔记之注解
java·笔记·学习
BossFriday5 分钟前
【手撸IM】SycllaDB 消息存储基础
java·分布式·中间件
武子康5 分钟前
Build-Your-Own-X 从零构建轻量级事件驱动微框架:嵌入式与物联网场景下的极简实践
人工智能·后端·物联网·ai·c#·大模型·嵌入式
霸道流氓气质6 分钟前
导入历史跟踪机制实战指南
java·linux·服务器
日取其半万世不竭7 分钟前
Uptime Kuma 应该放哪台机器?
java·docker·容器·https
消失的旧时光-19437 分钟前
Kotlin 协程设计思想(四):launch、async、withContext 到底有什么区别?
java·kotlin·async·launch·withcontext·deferred
夜白宋8 分钟前
【Redis深入】二、高性能
java·前端·redis
空圆小生8 分钟前
Vue3 + Spring Boot 全栈实战:从零搭建在线彩票模拟系统
java·spring boot·后端
devpotato11 分钟前
ArrayList 扩容机制:从源码细节到工程实践
java·list