什么是springboot面试题-SpringBoot 面试核心
实际上 Spring Boot 面试就那三件事,核心就在那儿,别整那些虚头巴脑的开场白。 起初说说启动流程,这玩意儿跟别的东西比起来确实有点“笨”。为了避免不必要的编译,它默认就把不同版本依赖混在一起打包了。
要是接个新依赖,你手动去改配置文件,那绝对是地狱难度,特别是那种需求动态加依赖的场景,手动改配置图个啥?还得等重启,忒慢了。 这就害得了一个难题,就是依赖管理。理论上应当用 Maven 要么 Gradle 来做,但 Spring Boot 为了好办,直接选用了 Maven Surefire 插件来管理。
不过这里有个坑,出于 Boot 会默认配置独立的 Maven 仓库,害得本地 Maven 里那些怪的依赖也跑不进去。
要是你本地有版本冲突的依赖,肯定得把 Boot 的仓库地址改完再试,不然修半天都修不好。 再聊聊启动速度。大量人当作启动慢是出于懒加载,实际上更多是出于那个 Spring 核心库本身就挺重,每次启动都要加载一堆东西。
这就造成了启动工夫不稳定,有时候秒开,有时候得等 5 分钟,彻底看机器配置。 然后就是那些复杂的配置。别看官方承诺 3.3 版本赶明儿应当全用 XML 配置了,但现实情况是,大局部代码还是用注解要么 yaml,毕竟 XML 配置在 Java 里忒老了。
不过要是你手写一个 Spring Boot 项目,发现 XML 确实好用,比如要写复杂的别名要么逻辑判断,那得老老实实用。
要是写复杂逻辑,注解确实不如 XML 直观,但那样维护起来也费劲。 说到本质,Spring Boot 是个容器,自带了一套服务,像 Spring Cloud 这种分布式架构,它实际上是带好了,你只需求往容器里塞个应用,自动分配端口、管理依赖,大局部配置都在元数据里,不用到处改。 最终说下 Spring Cloud 系列,别看名字长,但实际上核心就是 Spring Boot 的升级。最早那七个版本,本质上就是 Spring Boot 的迭代,后来为了配合微服务,大家又陆续搞了个 Cloud 系列,比如应用命名、配置中心、分布式事务这些。目前 Spring Boot 3.0 版本出来了,标榜是全新版本,但大量底层逻辑和架构跟之前的 2.x 实际上没忒大区别,主要是为了配合新的 JDK 和 Java 8 标准,走得更远。 总而言之,面试时别去问那些没意义的基础细节,能问清楚 Spring Boot 如何启动、如何配置、如何扩展,才算过关。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
