SpringBoot系列(二)启动原理解析

本文详细解析了SpringBoot启动过程中的关键注解@SpringBootApplication的作用,包括其内部包含的@Configuration、@EnableAutoConfiguration和@ComponentScan等注解的工作原理,以及它们如何帮助实现自动配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要想了解开一辆车首先你要知道,这辆车的驾驶座在哪,以及它是如何启动的。

接下来我们就一起了解一下SpringBoot的启动原理,之前说过这是SpringBoot入口

那么下面来看几个注解

------ @SpringBootApplication 


我们不难发现@SpringBootApplication注解是由多个注解共同组成,其实重要的只有三个

  1. @Configuration
  2. @EnableAutoConfiguration
  3. @ComponentScan

下面简单介绍一下@Configuration

在我看来@Configuration就相当于配置文件中的<Beans>标签,与之相关的@Bean就相当于<Bean>,举个例子

配置类:


实体类:


测试类:


以上代码就相当于在xml文件中<Beans ...><Bean></Bean><Beans...>,与传统Spring获得对象的方式一样

@EnableAutoConfiguration

启用Spring应用程序上下文的自动配置,配置你可能需要的bean,自动配置会尽可能的智能化去配置你可能需要的bean

@EnableAutoConfiguration是一个复合注解


其中最关键的是@Import({AutoConfigurationImportSelector.class}),借助AutoConfigurationImportSelector

可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。就像一只“八爪鱼”一样

借助于Spring框架原有的一个工具类:SpringFactoriesLoader的支持,@EnableAutoConfiguration可以智能的自动配置功效才得以大功告成!

自动配置幕后英雄:SpringFactoriesLoader详解

从classpath中搜寻所有的META-INF/spring.factories配置文件,并将其中org.springframework.boot.autoconfigure.EnableutoConfiguration对应的配置项通过反射(Java Refletion)实例化为对应的标注了@Configuration的JavaConfig形式的IoC容器配置类,然后汇总为一个并加载到IoC容器。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙潭一条鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值