02--SpringBoot自动装配原理

1、自动配置类读取原理

@SpringBootApplication应用标注在某个类上,说明这个类是SpringBoot的主配置类,SpringBoot的项目需要运行这个类的main方法来启动SpringBoot应用的服务;

1.1 源码分析

java 复制代码
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
 @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
 @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {}
  • @SpringBootConfiguration:用于标识这个类是SpringBoot的配置类;
  • @EnableAutoConfiguration:开启自动配置的功能,会自动扫描所有自动配置类,扫描到且满足条件才会生效。
  • @ComponentScan:包扫描;
    • TypeExcludeFilter:SpringBoot对外提供的扩展类, 可以去按照我们的方式进行排除
    • AutoConfigurationExcludeFilter:排除所有配置类并且是自动配置类
java 复制代码
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {}
  • @AutoConfigurationPackage:将当前配置类所在包保存在BasePackages的Bean中。供Spring内部使用。
  • 自动装配流程图

后续深入更新...

相关推荐
消失的旧时光-19433 分钟前
Spring Boot + MyBatis 从 0 到 1 跑通查询接口(含全部踩坑)
spring boot·后端·spring·mybatis
摇滚侠9 分钟前
Redis 和 MySQL 数据同步方案,ElasticSearch 和 MySQL 数据同步方案
java·redis·mysql
Rsun0455118 分钟前
IDEA隐藏无关文件
java·elasticsearch·intellij-idea
人道领域28 分钟前
【黑马点评日记03】实战:Redis缓存穿透,缓存击穿,缓存雪崩全解析
java·开发语言·jvm·redis·spring·tomcat
SamDeepThinking31 分钟前
Spring AOP记录日志,生产环境的代码长什么样
java·后端·架构
阿拉金alakin37 分钟前
深入理解 Java 线程池:核心参数、工作流程与常用创建方式
java·开发语言·java-ee
小江的记录本44 分钟前
【网络安全】《网络安全三大加密算法结构化知识体系》
java·前端·后端·python·安全·spring·web安全
希望永不加班1 小时前
SpringBoot 中 AOP 实现多数据源切换
java·数据库·spring boot·后端·spring
广师大-Wzx1 小时前
JavaWeb:前端部分
java·前端·javascript·css·vue.js·前端框架·html
生万千欢喜心1 小时前
Linux 安装金蝶天燕中间件 AAS-V9.0.zip
java·linux