1.什么是SpringBoot?有什么优点?
springboot是spring的子项目,是spring组件的一站式解决方案,简化了使用的难度,简省了配置
优点:
2.SpringBoot核心注解是什么?由哪几个注解组成?
核心注解是:@SpringBootApplication
组成:
@SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能
@EnableAutoConfiguration:打开自动配置功能
@ComponentScan:Spring组件扫描
3.SpringBoot自动装配机制
自动装配就是自动去把第三方组件的Bean装载到IOC容器里面,不需要开发人员再去写Bean相关的配置;
在SpringBoot中只需要加上@SpringBootApplication注解就可以实现自动装配;
4.SpringBoot如何实现应用程序的安全性
使用依赖项,必须添加安全配置
5.SpringBoot中监听器是什么
actuator,监视器可帮助访问生产环境中正在运行的应用程序的当前状态
6.什么是 CSRF 攻击?
CSRF指的是跨站请求伪造
7.SpringBoot比Spring做了哪些改进?
8.运行SpringBoot有哪几种方式
9.SpringBoot配置加载顺序
通过事件监听的方式读取配置文件
1.properties文件
2.ymal文件
3.系统环境变量
4.命令行参数
10.为什么SpringBoot的jar可以直接运行
11.SpringBoot的启动原理
12.SpringBoot Starter是什么?常用的Starter有哪些?
Starter可以理解为启动器,包含了一系列可以集成到应用里面的依赖包,可以一站式集成Spring其他的技术,而不需要到处寻找代码和依赖包。
常见的Starter:
spring-boot-starter-web:嵌入servlet与jsp支持
spring-boot-starter-data-jpa:数据库支持
spring-boot-starter-data-redis:redis支持
spring-boot-starter-data-solr:solr支持
13.如何在SpringBoot启动的时候运行一些特定的代码
可以实现接口ApplicationRunner,重写run方法,再把实现接口的类加入ioc容器
14.SpringBoot如何实现异常处理
通过实现一个ControlerAdvice类,来处理控制器类抛出的所有异常
15.SpringBoot的核心配置文件有哪些?区别是什么?
核心配置文件:application和bootstrap配置文件
区别:
1.bootstrap先于application加载,bootstrap里面的属性不能被覆盖
2.application主要用于spring boot 项目的自动化配置
3.bootstrap:使用配置中心时,这时需要在bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的配置;一些加密/解密的场景。
16.Spring Boot、Spring MVC 和 Spring 有什么区别?
1.范围:spring mvc < spring < springboot;
2.Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架,而Spring Boot 是基于Spring的一套快速开发整合包
3.Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展
17.SpringBoot的run方法做了什么事情?
做了一个类似于ioc的初始化操作
1.记录Spring boot启动时间
2.获取所有在构造器中,从spring.factories文件读取加载的监听器
3.启动所有监听器
4.用已有的数据准备上下文
5.刷新Context
18.SpringBoot如何解决跨域
利用CORS来解决跨域,通过实现WebMvcConfigurer接口,然后重写addCorsMappings方法来解决跨域。
19.SpringBoot如何兼容老的Spring项目
可以兼容;可以使用@ImportResource注解来导入老Spring项目的配置文件
20.SpringBoot如何实现定时任务
使用@Scheduled注解来实现
21.@SpringBootApplication注解有什么用?为什么一定要用它?
当spring容器在启动时加上@SpringBootApplication注解,就相当于类上加了:
1.@EnableAutoConfiguration:将自动配置类导入到Spring容器中,进行解析
2.@SpringBootConfiguration:表示当前类是一个配置类
3.@ComponentScan:Spring容器会进行扫描,扫描路径为当前解析类的包路径
所以,只要加上了它,SpringBoot就会进行扫描,就会导入自动配置类并解析