目录

1、SpringBoot介绍

1.1、什么是SpringBoot

1.2、SpringBoot优点

1.3、RESTful 风格介绍

1.4、什么是Starter/Starter工作原理

1.5、几种读取配置的方式

2、SpringBoot启动流程/原理

3、SprinBoot自动 装配/配置 原理

4、SpringBoot的核心注解

5、SpringBoot配置文件

5.1、配置文件是如何被加载和解析的

5.2、application和boostrap配置文件区别


1、SpringBoot介绍

1.1、什么是SpringBoot

从本质来说SpringBoot就是Spring,是一个快速开发框架,它去掉了Spring繁琐的XML配置提供了自动配置,只需少量配置即可。

1.2、SpringBoot优点

(1)自动配置

(2)内嵌了Tomcat

(3)简化部署,可打包成jar包

(4)大量开箱即用功能,如各种模板

1.3、RESTful 风格介绍

传统MVC模式开发会直接返回给客户端一个视图,但是RESTful Web服务返回JSON形式(前后端分离)

1.4、什么是Starter/Starter工作原理

Starters可以理解为启动器,它包含了一系列依赖包,可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。通过自动化配置和依赖管理,简化了应用程序的开发和配置工作

1.5、几种读取配置的方式

@PropertySource、@Value、@Environment、 @ConfigurationPropertie 等注解

2、SpringBoot启动流程/原理

Spring Boot的启动原理是通过SpringApplication类来实现的。当应用程序启动时,Spring Boot会创建一个SpringApplication实例,并调用其静态run方法来启动应用程序。然后会做以下动作:

(1) 创建应用上下文ApplicationContext

SpringApplication会创建一个Spring应用上下文,用于管理应用程序中的所有Bean和组件

(2)执行自动化配置

根据条件化配置和自动配置类的机制,自动装配应用程序所需的Bean和功能。

(3) 启动应用上下文

启动Spring应用上下文,初始化所有Bean和组件,并准备好处理请求

(4)运行应用程序,完成启动

启动内嵌的Web服务器如Tomcat等,并开始处理请求

3、SprinBoot自动 装配/配置 原理

自动装配原理是基于 条件化配置和自动配置类 实现的(spring.factories文件可有可无)。

(1)条件化配置

 使用条件化注解(@Conditional)来实现自动装配。这些注解基于运行时环境的条件来决定是否需要装配某个组件

(2)自动配置类

启动类使用@SpringBootApplication组合注解,该注解包含了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的功能。

通过@EnableAutoConfiguration开启自动装配,它会根据项目中引入的依赖自动配置Spring应用;再通过@Conditional按需加载配置类,开发者无需手动配置各种Bean,只需要引入对应的Starter和配置文件、依赖即可。

4、SpringBoot的核心注解

(1)@SpringBootApplication

组合注解,用于标识一个SpringBoot应用程序的主类。它包含了@ComponentScan、@EnableAutoConfiguration和@Configuration注解,用于扫描组件、自动配置和配置Bean

(2) @RestController

标识一个类是一个控制器类,它是@ResponseBody和@Controller的组合注解

(3)@Autowired:自动装配Bean,Spring自动注入所需的依赖

(4)@Configuration

这个注解用于定义配置类,相当于传统Spring中的XML配置文件。被注解的类内部包含有一个或多个@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或者ClassPathXmlApplicationContext类进行扫描,并用于构建Bean定义

(5)@ComponentScan

自动扫描指定包及其子包下的所有类,并将其注册为Spring容器中的Bean

(6)@EnableAutoConfiguration

开启SpringBoot的自动配置功能,它会根据项目中引入的依赖自动配置Spring应用

5、SpringBoot配置文件

5.1、配置文件是如何被加载和解析的

ConfigFileApplicationListener。这个监听器会在Spring Boot应用程序启动时自动被注册,并且负责加载和解析配置文件,将配置属性转换为Spring的Environment对象中的属性。

5.2、application和boostrap配置文件区别

application用于常规配置;bootstrap用于一些优先级较高、框架级的配置,启动时优先加载所以会覆盖application的配置信息。