SpringBoot
1.为什么使用SpringBoot?
①.独立运行,内嵌各种servlet容器,可打包成一个可执行的jar包独立运行。
②.简化配置,启动器自动依赖其他组件,简少了maven的配置。
③.自动配置,能够根据当前类路径下的类、jar包来自动配置bean。
④.无代码生成和XML配置,可以借助于条件注解完成。
⑤.应用监控,提供了一系列端点可监控服务及应用,做健康检测。
2.SpringBoot的核心注解是什么?它主要有哪几个注解组成的?
启动类上面的注解@SpringBootApplication,它是核心注解,主要包括了一下三个注解:
@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,如关闭数据源自动配置功能:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@ComponentScan:Spring组件扫描
3.运行SpringBoot有哪几种方式?
①打包用命令或者放到容器中运行
②用Maven插件运行
③直接执行main方法
4.如何理解SpringBoot中的Starters?
Starters是什么?
可以理解为启动器,包含了一系列可集成到应用里面的依赖包,可以一站式的集成Spring及其他技术,而不需要到处找示例代码和依赖包。
Starters分类:
①SpringBoot应用类启动器
spring-boot-starter:包含自动配置、日志、YAML的支持。
spring-boot-starter-web:使用SpringMVC构建web工程,包含restful,默认使用Tomcat容器。
②SpringBoot生产启动器
spring-boot-starter-actuator:提供生产环境特性,能监控管理应用。
③SpringBoot技术类启动器
spring-boot-starter-json:提供对json的读写支持。
spring-boot-starter-logging:默认的日志启动器,默认使用Logback。
5.SpringBoot需要独立的容器运行吗?
可以不需要,内置了tomcat等容器。
6.如何理解SpringBoot配置加载顺序?
可以使用一下几种方式加载配置。
1)properties文件;
2)YAML文件;
3)系统环境变量;
4)命令行参数;
7.SpringBoot的核心配置文件有哪几个?它们的区别是什么?
application和bootstrap配置
application主要用于SpringBoot项目的自动化配置。
bootstrap配置有几个应用场景:
一些固定的不能被覆盖的属性。
一些加密/解密场景
8.简单说一下springboot的自动配置流程?
Spring Boot的自动配置流程可以简要描述如下:
- 启动应用:当Spring Boot应用启动时,会扫描项目的类路径,包括依赖的JAR包。
- 条件判断:Spring Boot根据一系列条件来决定是否需要自动配置某个Bean。这些条件可以是类路径中是否存在某个类、是否配置了特定的属性等。
- 自动配置类加载:Spring Boot会加载自动配置类,这些类通常使用
@Configuration
注解标记,并且包含在META-INF/spring.factories
文件中。 - Bean创建:根据条件和自动配置类中的逻辑,Spring Boot会创建所需的Bean。如果存在多个Bean候选项,Spring Boot会根据条件自动选择合适的Bean。
- 外部化配置:Spring Boot支持外部化配置,开发者可以通过
application.properties
或application.yml
文件调整自动配置的行为。 - 应用启动:最终,Spring Boot应用会以自动配置的方式运行,开发者无需手动配置大部分常见的组件,从而简化了应用的部署和维护过程。
这种自动配置机制使得Spring Boot应用的搭建更加简单高效,开发者可以专注于业务逻辑的实现而不必过多关注框架的配置。