1、项目中为什么选择SpringBootSpringBoot简化了Spring可以快速搭建企业级项目而且开发起来效率也会更高它的主要优点如下版本锁定SpringBoot在父工程中进行了大量常见依赖的版本锁定省去了我们查找依赖版本和解决版本冲突的麻烦简化依赖SpringBoot以功能化的方式将需要的依赖进行组装并且允许程序员以starter的方式进行引入简化配置SpringBoot实现了大量依赖框架的默认配置项程序员无须再进行自己配置简化启动方式SpringBoot内置了一个tomcat使用它开发的程序无需再进行tomcat部署可直接运行2、SpringBoot的自动装配原理自动装配就是自动地把其他组件中的Bean装载到IOC容器中不需要开发人员再去配置文件中添加大量的配置我们只需要在SpringBoot的启动类上添加一个SpringBootApplication的注解就可以开启自动装配SpringBootApplicaiton是有三个子注解组成的其中有一个EnableAutoConfigurationEnableAutoConfiguration有一个Import注解 会引入一个Selector类类中有一个select方法方法是用加载所有jar下的META-INF下的spring.factories文件和一个XXXX.imports结尾的文件这两个文件中有大量的配置类,spring就会把这些配置类中的Bean有条件的加载到IOC容器中3、SpringBoot的核心注解是哪个SpringBoot的核心注解在启动类上叫SpringBootApplication主要组合包含了以下3个注解SpringBootConfiguration声明当前启动类是一个配置类ComponentScanSpring组件扫描默认会扫描启动类所在的包以及子包EnableAutoConfiguration可以实现自动装配的4、SpringBoot中的starter是干什么的当项目足够复杂时因为涉及的组件太多了就需要引入很多的依赖此时管理依赖就边的很麻烦此时SpringBoot的starter就派上用场了每个starter都可以为我们提供某个服务场景所需要的一系列依赖5、SpringBoot读取配置的方式有几种SpringBoot常见的读取配置信息的方式有两种使用Value配合EL表达式Value(“${name}”)注解直接注入对应的值使用ConfigurationProperties注解把对应的值绑定到一个配置对象然后将配置对象注入到需要的地方推荐使用使用第二种方式在配置比较多的情况下操作简单可读性好6、项目中拦截器实现了什么功能1、单体项目中做了鉴权 2、微服务项目中在进入Controller方法之前获取了从网关传过来的请求头从请求头中获取了userId放到了ThreadLocal中7、SpringBoot项目如何实现方法的异步调用异步调用指的是a方法在调用b方法的时候无需等待b方法执行完毕就可以继续向下执行一般用在a方法无需使用b方法返回结果的场景下可以在一定程度上提高运行效率在SpringBoot中使用异步调用是很简单的只需要做两个操作就可以了在启动类上添加EnableAsync注解开启异步调用支持在被调用的方法上添加Async注解controller-a(){代码1service-a()代码3}Asyncservice-a(){}8、SpringBoot中如何实现定时任务在SpringBoot中使用定时任务主要有两种方式一个就是使用SpringTask另一个则是使用第三方框架QuartzSpringTask主要是通过Scheduled注解来实现定时任务触发的格式如下Scheduled(cron 0/5 * * * * *) public void printTime() { System.out.println(new Date().toLocaleString()); } 主要属性如下fixedRate按一定的频率执行任务参数类型为long单位 msfixedDelay上一次任务执行完后多久再执行参数类型为long单位 msinitialDelay延迟多久再第一次执行任务参数类型为 long单位 mscron使用cron表达式指定任务在特定时间执行