以下是我是学习过程中整理的内容,如果有错误的地方,还请指出😃

什么是SpringBoot

SpringBoot是一个快速开发框架,可以整合第三方框架,并且全部采用注解方式,减少xml配置,内置HTTP容器

SpringBoot启动方式

1.使用@RestController@EnableAutoConfiguration修饰启动类
2.使用@ComponentScan(basePackages = "com.innlad.controller")@EnableAutoConfiguration修饰启动类
3.使用@SpringBootApplication修饰启动类

SpringBoot与SpringMVC 区别

SpringBoot是一个快速开发框架,可以整合第三方框架,并且全部采用注解方式,减少xml配置,内置HTTP容器,SpringBoot整合了SpringMVC作为web组件使用,SpringMVC是基于MVC架构模式所开发出来的基于Java的轻量级web框架

SpringBoot与SpringCloud 区别

SpringBoot是一个快速开发框架,整合了SpringMVC作为web组件使用,SpringCloud是一个微服务框架,是基于SpringBoot的,使用的是SpringMVC作为web组件。

SpringBoot中有那些注解

1.在类上加@RestController:所修饰的类的所有方法均返回json格式,相当于传统方式在类上加@Controller和方法上加上@ResponseBody
2.在类上加@EnableAutoConfiguration:开启自动装配,让SpringBoot根据应用所声明的依赖,来对Spring框架进行自动配置
3.在类上加@ComponentScan(basePackages = "com.innlad.controller"):声明控制器的扫包范围
4.在启动类上加@SpringBootApplication:相当于加@ComponentScan@SpringBootConfiguration@EnableAutoConfiguration

@EnableAutoConfiguration作用

开启自动装配,让SpringBoot根据应用所声明的依赖,来对Spring框架进行自动配置

@SpringBootApplication原理

由于@SpringBootApplication实际上是一个复合注解,包含了@ComponentScan@SpringBootConfiguration@EnableAutoConfiguration,因为@ComponentScan是声明控制器范围,@SpringBootConfiguration继承了@Configuration,标注当前是配置类,因此会将当前标记的方法实例化到Spring容器中,@EnableAutoConfiguration是自动配置,即SpringBoot根据所添加的依赖jar包来联想项目的默认配置。因此@SpringBootApplication相当于可以查找到控制器,自动装配,并且对项目进行默认配置。

SpringBoot热部署使用什么

使用DevTools框架实现热部署

热部署原理是什么

监听class文件是否改变,如果改变了(可以通过修改时间或者版本号),则使用ClassLoader重新加载class文件到jvm内存中

热部署原理与热加载区别是什么

热部署是在开发阶段使用的,是为了提高开发效率,不用每次修改代码都重启服务器,热加载是在运行阶段使用的,目的是重新加载class

你们项目中异常是如何处理

使用AOP原理实现全局捕获异常,使用异常通知,记录日志

SpringBoot如何实现异步执行

在方法上加上@Async实现异步执行,代表了这个方法重新开启一个线程去执行,并且在启动类上面加上@EnableAsync表示开启异步执行

SpringBoot多数据源拆分的思路

1.分包名进行区分不同数据源
方法上使用@Dataource注解指定数据源

SpringBoot多数据源事务如何管理

1.在方法上使用@Transactional开启SpringBoot默认集成的事务
2.使用jta+atomikos进行分布式事务管理

SpringBoot如何实现打包

使用mvn package打包,然后使用java -jar {包名}方式启动

SpringBoot性能如何优化

1.Jvm参数调优
2.扫包优化(启动时优化,使用@SpringBootApplication默认是用递归方式扫所有的子包,会扫到无用的包)
3.将内置服务器改为Undertow(吞吐量比Tomcat高很多)

SpringBoot2.0新特性

1.支持的jdk版本至少是8以上
2.内嵌容器的包结构调整
3.Servlet-specific的server properties调整
4.Actuator 的端点默认映射到application下
5.不再支持Spring Loaded,可以用Devtools代替
6.支持对Quartz调度器
7.支持OAuth2.0
8.支持Spring WebFlux

SpringBoot执行流程

暂时不懂

SpringBoot底层实现原理

1.maven使用子父依赖关系实现第三方jar包的管理
2.内置服务器,使用Java语言来创建Tomcat服务器(其实是调用了tomcat提供的接口)
3.在Spring 3.0以上,出现了注解方式,可以通过java代码来编写SpringMVC配置,Tomcat容器启动时,去执行配置了SpringMVC的class文件

SpringBoot装配Bean的原理

使用注解和继承,引入包含自动装配核心方法的类,在SpringApplication.run的时候自动调用装配方法,自动装配方法会调用spring-boot-autoconfigure.jar中的spring.factories配置文件,其中包含了所有自动装配类的类名,生成对应功能的Configuration类,并注入默认的属性值