SpringBoot 的修行之路

一、古代篇

第一章:灵根觉醒——Spring Boot 的诞生
  • 背景:修仙界中,法宝需求增长,炼器步骤繁琐。
  • 创新:Spring大能创造出“Spring Boot”,简化炼器步骤。
第二章:异火点燃——自动装配的奥秘
  • 核心:自动装配阵法,通过注解实现。
  • 注解
    • @SpringBootApplication:基础注解,包含@EnableAutoConfiguration
    • @EnableAutoConfiguration:包含@Import,导入AutoConfigurationImportSelector
    • @Import:加载配置类。
    • AutoConfigurationImportSelector:连接spring.factories,通过反射读取配置类。
第三章:灵材收集——配置的简化
  • 灵材:配置文件(如application.propertiesapplication.yml)。
  • 自动装配:简化配置文件的收集与整合。
第四章:灵光乍现——应用的启动
  • 启动:通过自动装配,简化应用启动过程。

二、现代篇

了解SpringBoot自动装配原理
  • 起点@SpringBootApplication注解。
  • 注解组合
    • @Target(ElementType.TYPE):作用于类、接口。
    • @Retention(RetentionPolicy.RUNTIME):注解在运行时存在。
    • @Documented:生成javadoc时展示注解。
    • @Inherited:子类继承注解。
    • @SpringBootConfiguration:标识为SpringBoot配置类。
    • @EnableAutoConfiguration:实现自动装配。
    • @ComponentScan:扫描配置类。
@EnableAutoConfiguration注解
  • 组合注解:核心是@Import(AutoConfigurationImportSelector.class)
  • 作用:将AutoConfigurationImportSelector导入Spring容器。
AutoConfigurationImportSelector
  • 核心方法selectImports
    public String[] selectImports(AnnotationMetadata annotationMetadata) {
        if (!isEnabled(annotationMetadata)) {
            return NO_IMPORTS;
        }
        AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(annotationMetadata);
        return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());
    }
    
  • 实现
    • 读取META-INF/spring.factories文件。
    • 加载需要装配的配置类集合。
    • 使用getAutoConfigurationEntry实现加载。
    • 使用getCandidateConfigurationsSpringFactoriesLoader.loadFactoryNames读取配置。

小结

  1. 自动装配流程
    • @SpringBootApplication -> @EnableAutoConfiguration -> @Import
  2. 条件过滤:自动装配会进行条件过滤,仅在满足条件时加载配置类。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值