1、为什么要用SpringBoot
Spring Boot是一个开源的Java框架,它可以简化Spring应用程序的开发过程。相较于传统的Spring框架,Spring Boot具有以下优点:
- 可快速构建独立的Spring应用,只需要添加相应的场景依赖即可。
- 内嵌Web服务器,无需部署WAR文件。
- 自动starter依赖,简化构建配置。
- 自动配置Spring以及第三方功能。
- 提供生产级别的监控。
2、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
Spring Boot 的核心注解是 @SpringBootApplication
,它主要由以下三个注解组成:
@SpringBootConfiguration
:组合了@Configuration
注解,实现配置文件的功能。@EnableAutoConfiguration
:打开自动配置的功能,也可以自定义配置。@ComponentScan
:扫描组件,注册为 Spring Bean。
3、运行Spring Boot有哪几种方式?
- 打包用命令或者放到容器中运行
- 用 Maven/Gradle 插件运行
- 直接执行 main 方法运行
4、如何理解 Spring Boot 中的 Starters?
Spring Boot Starters 是 Spring Boot 框架提供的一组依赖项,用于简化和加速应用程序的开发。它们提供了预配置的依赖项集合,以便快速集成常见的功能和技术。
当我们需要构建一个 Web 应用程序时,不必再遍历所有的依赖包,一个一个地添加到项目的依赖管理中,而是只需要引入相应的 Starter 即可。
5、如何在Spring Boot启动的时候运行一些特定的代码?
可以实现接口ApplicationRunner或者CommandLineRunner,这两个接口都实现了Runnable接口,只提供了一个run方法。
6、Spring Boot 需要独立的容器运行吗?
不需要,内置了Tomcat/Jetty等容器
7、Spring Boot中的监视器是什么?
Spring Boot中的监视器是指一组用于监视应用程序性能和运行状况的工具和指标。Spring Boot包含了许多内置的监视器,可以让我们实时了解应用程序的各种指标。
8、如何使用Spring Boot实现异常处理?
Spring Boot提供了一种全局异常处理的方式,可以通过使用@ControllerAdvice注解和@ExceptionHandler注解来实现对指定异常的特殊处理。
9、Spring Boot常用的starter有哪些
- Spring Boot Starter Web:这是用于构建Web应用程序的starter,包含了Spring MVC、Tomcat和其他与Web开发相关的依赖。
- Spring Boot Starter Data JPA:这是用于与关系型数据库进行交互的starter,包括Spring Data JPA和Hibernate。
- Spring Boot Starter Redis:这是用于与Redis进行交互的starter,包括Jedis和Lettuce。
- Spring Boot Starter Solr:这是用于与Solr进行交互的starter,包括Solr客户端和Solr搜索API。
- MyBatis Spring Boot Starter:这是用于将MyBatis与Spring Boot集成的starter。
10、Spring Boot 实现热部署有哪几种方式?
- spring-boot-devtools:spring-boot-devtools是一个用于Spring Boot的开源插件,它提供了一种简单的方式来实现热部署。
- Spring Loaded:Spring Loaded是一个用于Java Web应用程序的热部署工具。它可以在不重启服务器的情况下重新加载Java类和HTML页面。
11、如何理解 Spring Boot 配置加载顺序?
- properties文件
- YAML文件
- 系统环境变量
- 命令行参数
12、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
application和 bootstrap
bootstrap 加载优先于 application
application 配置文件主要用于 Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景
- 添加连接到配置中心的配置属性来加载外部配置中心的配置信息
- 一些固定的不能被覆盖的属性
- 一些加密/解密的场景