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内部使用。
  • 自动装配流程图

后续深入更新...

相关推荐
王嘉俊92513 小时前
设计模式--装饰器模式:动态扩展对象功能的优雅设计
java·设计模式·装饰器模式
循着风13 小时前
多种二分查找
java
努力也学不会java13 小时前
【Java并发】深入理解synchronized
java·开发语言·人工智能·juc
TDengine (老段)13 小时前
TDengine 数学函数 CEIL 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
LB211214 小时前
Redis 黑马skyout
java·数据库·redis
洛小豆14 小时前
Swagger3学习与实践指南
spring boot·后端·spring cloud
豐儀麟阁贵14 小时前
Java知识点储备
java·开发语言
hrrrrb14 小时前
【Spring Security】Spring Security 密码编辑器
java·hive·spring
豐儀麟阁贵14 小时前
2.3变量与常量
java·开发语言
摇滚侠15 小时前
Spring Boot 3零基础教程,自动配置机制,笔记07
spring boot·笔记·后端