面试八股文-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 容器中,实现自动配置功能

浙公网安备 33010602011771号