面试八股文-Spring Boot

介绍一下Spring Boot

Spring Boot是Spring项目的脚手架框架,使用“约定优于配置”的理念,通过提供众多的起步依赖(Starter)简化了项目依赖导入,同时默认初始化简化了项目配置
通过Spring Boot可以实现快速、简易地搭建项目脚手架,并启动项目

Spring Boot的优点在哪里?

说一说Spring Boot的核心注解

Spring Boot最核心的注解是@SpringBootApplication,它位于main()方法所在类上,表示一个SpringBoot应用程序
其中,@SpringBootApplication注解组合了三个重要的注解,分别是:

  1. @ComponentScan:Spring的组件扫描器,扫描指定package

配合@Component使用:告诉Spring框架哪些被标记的类需要被扫描并装入bean容器

  1. @SpringBootConfiguration:组合了@Configuration注解,他俩功能基本一致,标注当前类为配置类
  2. @EnableAutoConfiguration:开启自动装配
    其中又组合了@Import注解,它是实现自动装配的核心

除了以上注解,比较常用的还有Conditional注解
它是Spring 4.0 中引入的新特性,可根据是否满足指定条件来决定是否进行Bean的实例化及装配

@Conditional注解有很多的衍生注解,例如:

  1. @ConditionalOnBean:容器中有指定Bean的条件下
  2. @ConditionalOnMissingClass:当类路径下没有指定类的条件下
  3. @ConditionalOnProperty:在指定属性有指定值的条件下

说一说自动装配

描述

使用Spring Boot时,只需要引入相应的Starters,Spring Boot启动时便会自动加载相关依赖,配置相应的初始化参数

流程

  1. Spring Boot通过@EnableAutoConfiguration注解开启自动装配功能
  2. Spring Boot在启动时会去依赖的Starter包中寻找resources/META-INF/spring.factories文件,然后根据文件中配置的jar包去扫描项目所依赖的jar包
  3. 加载spring.factories中注册的各种AutoConfiguration类
  4. 当某个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 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(618)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起