1. 什么是 Spring Boot?
Spring Boot是Spring提供的一个子项目,用于快速构建Spring应用程序,简省了繁重的配置,快速上手
2. Spring Boot 有哪些优点?
起步依赖:每个起步依赖对应一个特定的功能领域
自动配置:自动注册bean到容器中
其它特性: 内嵌Tomcat服务器
不需要打成war包,直接打成jar包即可
外部化配置:可以将应用的配置信息(如数据库连接信息、服务器端口等)与代码分离,存储在
外部的配置文件
3. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面、核心注解是@SpringBootApplication,主要组合包含了以下 3 个注解:
- @SpringBootConfiguration:声明配置类
- @EnableAutoConfiguration:开启自动配置
- @ComponentScan:开启注解扫描(扫描与其同级)
4. SpringBoot的配置文件
SpringBoot是约定大于配置的,默认配置是可以进行覆盖的,我们可以使用application.properties或者application.yml(application.yaml)进行重新配置,
配置加载顺序:application.yml文件、application.yaml、application.properties文件、系统环境变量、命令行参数 ,后加载的文件会对前面的文件进行覆盖。
5. Spring Boot 中如何解决跨域问题 ?
方法一:使用 @CrossOrigin 注解,以在控制器类或处理方法上使用,用于允许特定的跨域请求
例如:@CrossOrigin(origins = "http://example.com", maxAge = 3600)
方法二:实现 WebMvcConfigurer 接口
实现 WebMvcConfigurer
接口并重写 addCorsMappings
方法,可以全局配置跨域请求
方法三:使用过滤器(Filter)
创建一个自定义的过滤器,在过滤器中设置跨域相关的响应头,对所有的请求进行统一处理
方法四:使用 Spring Cloud Gateway
6. Spring Boot 中的 starter 到底是什么 ?
一组预先定义好的 Maven 或 Gradle 依赖集合,每个 starter
都聚焦于特定的功能领域
简化依赖管理:只需引入对应的 starter 依赖,Spring Boot 会自动帮我们引入该功能所需的所有依赖,
并且会处理好版本兼容性问题。
快速搭建项目:想要创建一个 Web 应用,只需要引入 spring-boot-starter-web 这个 starter,就可以快
速搭建起一个基于 Spring MVC 的 Web 项目。
7. spring-boot-starter-parent 有什么用 ?
提供默认的依赖管理:引入依赖时,如果没有显式指定版本号,Maven 或 Gradle 会从 spring-boot-starter-parent 中获取默认的版本
提供资源过滤和打包配置:配置了资源过滤规则;还提供了将项目打包成可执行 JAR 或 WAR 文件的配置
简化依赖声明:声明依赖时可以省略版本号
自动化的插件配置。
8. Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
Spring Boot 项目最终打包成的 jar 是可执行 jar ,这种 jar 不可以作为普通的 jar 被其他项目依赖,Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,普通的 jar 包,解压后直接就是包名,包里就是我们的代码,因此无法被直接引用
9. 开启 Spring Boot 特性有哪几种方式?
1)继承spring-boot-starter-parent项目
2)导入spring-boot-dependencies项目依赖
10. 如何使用 Spring Boot 实现异常处理?
直接使用注解@ControllerAdvice或者自定义异常类并处理