目录
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的配置信息。