1. Springboot 自动配置的原理:
@SpringBootApplication注解实现,其包括 @EnableAutoConfiguration 注解 @Configuration 注解 @ConditionalOnClass 注解
它是一个配置文件,其次可以根据路径下是否这个类去自动配置。
具体的步骤:
maven 读取每个starter 中的spring.factories 文件,该文件配置了所有需要被创建在spring 容器中的bean 。
2. SpringBoot 配置的加载顺序?
Springboot 配置加载顺序的优先级是: propertiese 文件、 YAML 文件、 系统环境变量、命令行参数。
3. SpringBoot 支持那些嵌入式Web 容器?
Tomcat、 Jetty、 Undertow
4. 什么是YAML?
YAML 是一种可读的数据序列化语言,它通常用于配置文件。
5. YAML 配置的优势在哪里?
配置有序
支持数据,数组中的元素可以使基本数据类型或者对象
简洁方便
6. application.properties 与 bootstrap.properties 的区别?
bootstrap 比application 优先加载,配置在应用程序上下文的引导阶段生效,而且bootstrap 里面属性不能被覆盖;
application 用于springboot 项目的自动化配置。
7. 什么是 Spring Profiles?
Spring Profiles 允许用户根据配置文件(dev、prod、test等等)来注册bean, 当应用程序在开发环境中运行时,只有某些bean 可以加载,而在生产环境中,某些其他
bean 可以加载,比如要求swagger 文件仅适用于测试环境并且禁用所有其他文档,可以使用配置文件来完成。
8. 如何实现Spring Boot 应用程序的安全性?
为了实现Spring Boot 的安全性,可以使用spring-boot-starter-security 依赖,添加安全配置和重写WebSecurityConfigureAdapter 配置类的方法
9. 什么是 CSRF 攻击?
CSRF 代表跨站请求伪造,是一种攻击,迫使最终用户在当前通过身份验证的Web 应用程序上执行不需要的操作。CSRF 攻击专门针对状态改变请求,而不是数据窃取,因为攻击者
无法查看对伪造请求的响应。
10. 运行SpringBoot 有哪几种方式?
(1)用命令行打包或者放到容器中运行
(2)Maven 插件运行
(3)直接执行main 方法执行