面试八股文-Spring Boot
介绍一下Spring Boot
Spring Boot是Spring项目的脚手架框架,使用“约定优于配置”的理念,通过提供众多的起步依赖(Starter)简化了项目依赖导入,同时默认初始化简化了项目配置
通过Spring Boot可以实现快速、简易地搭建项目脚手架,并启动项目
Spring Boot的优点在哪里?
说一说Spring Boot的核心注解
Spring Boot最核心的注解是@SpringBootApplication
,它位于main()
方法所在类上,表示一个SpringBoot应用程序
其中,@SpringBootApplication
注解组合了三个重要的注解,分别是:
@ComponentScan
:Spring的组件扫描器,扫描指定package
配合
@Component
使用:告诉Spring框架哪些被标记的类需要被扫描并装入bean容器
@SpringBootConfiguration
:组合了@Configuration
注解,他俩功能基本一致,标注当前类为配置类@EnableAutoConfiguration
:开启自动装配
其中又组合了@Import
注解,它是实现自动装配的核心
除了以上注解,比较常用的还有Conditional
注解
它是Spring 4.0 中引入的新特性,可根据是否满足指定条件来决定是否进行Bean的实例化及装配
@Conditional
注解有很多的衍生注解,例如:
@ConditionalOnBean
:容器中有指定Bean的条件下@ConditionalOnMissingClass
:当类路径下没有指定类的条件下@ConditionalOnProperty
:在指定属性有指定值的条件下
说一说自动装配
描述
使用Spring Boot时,只需要引入相应的Starters,Spring Boot启动时便会自动加载相关依赖,配置相应的初始化参数
流程
- Spring Boot通过
@EnableAutoConfiguration
注解开启自动装配功能 - Spring Boot在启动时会去依赖的Starter包中寻找
resources/META-INF/spring.factories
文件,然后根据文件中配置的jar包去扫描项目所依赖的jar包 - 加载
spring.factories
中注册的各种AutoConfiguration类 - 当某个AutoConfiguration类满足其
@Conditional
注解指定的生效条件时,实例化该AutoConfiguration
类中定义的Bean(组件等),并注入Spring容器
实现
@EnableAutoConfiguration
注解中组合的@Import
注解是实现自动装配的核心
其导入了AutoConfigurationImportSelector
,在该类中加载META-INF/spring.factories
的配置信息
然后筛选出EnableAutoConfiguration
为 key 的数据,加载到 IOC 容器中,实现自动配置功能
说一说Spring Boot的启动流程
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/16368022.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步