面试题--SpringBoot

SpringBoot

SpringBoot 是什么(了解)

是 Spring 的子项目,主要简化 Spring 开发难度,去掉了繁重配置,提供各种启动器,可以 让程序员很快上手,节省开发时间.

 SpringBoot 的优点(必会)

SpringBoot 对上述 Spring 的缺点进行的改善和优化,基于约定优于配置的思想,可 以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码 编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。 版本锁定:解决是 maven 依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本 使用了 Starter(启动器)管理依赖并能对版本进行集中控制,如下的父工程带有版本号, 就是对版本进行了集中控制. org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE 起步依赖 :解决了完成某一个功能要整合的 jar 包过多的问题,集合了常用的 jar 包 自动配置:解决了整合框架或者技术的配置文件过多,集合了所有的约定的默认配置 内置 Tomcat:通过内置的 tomcat,无需再用其他外置的 Tomcat 就直接可以运行 javaEE 程序 总之:人们把 Spring Boot 称为搭建程序的脚手架。其最主要作用就是帮我们快速的构建 庞大的 spring 项目,并且尽可能的减少一切 xml 配置,做到开箱即用,迅速上手,让我们 关注与业务而非配置。

运行 SpringBoot 项目的方式(必会)

 可以打包  可以使用 Maven 插件直接运行.  直接运行 main 方法.

SpringBoot 的启动器 starter(必会)

(1)什么是 starter? 

starter 启动器,可以通过启动器集成其他的技术,比如说: web, mybatis, redis 等等.可 以提供对应技术的开发和运行环境. 比如: pom 中引入 spring-boot-starter-web, 就可以进行 web 开发.

(2)starter 执行原理?

 SpringBoot 在启动时候会去扫描 jar 包中的一个名为 spring.factories.  根据文件中的配置,去加载自动配置类. 配置文件格式是 key=value, value 中配置了很 多需要 Spring 加载的类.  Spring 会去加载这些自动配置类, Spring 读取后,就会创建这些类的对象,放到 Spring 容器中.后期就会从 Spring 容器中获取这些类对象. (3)SpringBoot 中常用的启动器  spring-boot-starter-web, 提供 web 技术支持  spring-boot-starter-test  spring-boot-starter-jdbc  spring-boot-starter-jpa  spring-boot-starter-redis…等等

SpringBoot 运行原理剖析(必会)

 SpringApplication 类作用及 run()方法作用  SpringApplication 这个类整合了其他框架的启动类, 只要运行这一个类,所有的整合 就都完成了.  调 用 run 函 数 , 将 当 前 启 动 类 的 字 节 码 传 入 ( 主 要 目 的 是 传 入 @SpringBootApplication 这个注解), 以及 main 函数的 args 参数.  通过获取当前启动类的核心信息, 创建 IOC 容器.

写在最后:SpringBoot是常用的后端框架,面试也是考察重点。笔者小,中,大厂均有面试经历,每日分享Java全栈知识,希望能够和大家共同进步。

上一篇:C++入门 容器适配器 / stack && queue模拟实现


下一篇:Java后端开发(十三)-- Java8 stream的 orElse(null) 和 orElseGet(null)