# SpringBoot 面试题

# 1.SpringBoot 的特性

  1. Spring 的独立应用;
  2. SpringBoot 内置 Tomcat、Jetty 容器,不需要构建 war 文件;
  3. SpringBoot 提供了各种 starter 即场景启动器,简化了构建配置;
  4. 当条件满足的时候自动地装配 Spring 或第三方类库;
  5. 提供运维特性,如指标信息、健康检查以及外部化配置;
  6. 绝无代码生成,并且不需要 XML 配置;

# 2.SpringBoot 的原理

​ Spring Boot 是一个用于简化 Spring 应用开发的框架,它基于 Spring 框架,提供了一种快速、方便的方式来创建基于生产级别的、可独立运行的 Spring 应用。以下是 Spring Boot 的一些核心原理:

  1. 自动配置(Auto-Configuration):Spring Boot 使用自动配置来简化应用的配置过程。它会根据类路径下的依赖自动配置应用的行为,减少了开发者的配置工作。
  2. 起步依赖(Starter Dependencies):Spring Boot 提供了一系列预先配置好的依赖项,称为 “起步依赖”。开发者可以通过引入特定的起步依赖,快速地添加对数据库、消息队列、安全性等功能的支持,而不需要手动配置。
  3. 嵌入式容器(Embedded Containers):Spring Boot 包含了嵌入式的 Servlet 容器(如 Tomcat、Jetty 等),应用可以直接打包为一个可执行的 JAR 文件,不需要外部容器的支持。
  4. Actuator:Spring Boot Actuator 提供了对应用内部运行状况的监控和管理功能。通过暴露 RESTful 接口,开发者可以方便地查看应用的健康状况、性能指标等信息。
  5. 外部化配置(Externalized Configuration):Spring Boot 支持使用属性文件、YAML 文件、环境变量等多种方式来配置应用,这样可以使得应用的配置更加灵活。
  6. Spring Boot CLI:Spring Boot 提供了一个命令行工具(CLI),可以用 Groovy 语言编写简单的 Spring Boot 应用,进一步简化了开发流程。
  7. 简化的 Maven 和 Gradle 插件:Spring Boot 提供了专门的 Maven 和 Gradle 插件,可以方便地构建和运行 Spring Boot 应用。

总的来说,Spring Boot 的核心原理在于提供了一套约定大于配置的开发模式,通过默认的配置和约定,开发者可以更专注于业务逻辑的开发,而不需要过多地关心底层框架的配置和集成。

# 3.SpringBoot 的一些注解

# 4.SpringBoot 的场景启动器是什么?