Spring Boot 4 与 Spring Framework 7

共 18 题
#

1. Spring Boot 4 / Spring Framework 7 的基线要求(JDK 17+/Jakarta EE 11)与升级路径,从 Boot 3.x 迁移的主要断点有哪些?

A Boot 4 支持 JDK 8
B Boot 4 与 3 完全兼容
C Boot 4 基线 JDK 17+ / Jakarta EE 11,迁移断点含 API 移除、虚拟线程、自动配置变化 ✓ 正确答案
D 无需升级依赖
#

2. Spring Framework 7 的 API 版本化(API Versioning)原生支持如何取代自研版本路由方案?

A @RequestMapping 的 version 参数原生支持按版本匹配 handler,取代自研路由 ✓ 正确答案
B 需自研版本路由
C 原生不支持版本
D 版本只能网关处理
#

3. Spring Boot 4 对虚拟线程的默认支持策略与 spring.threads.virtual.enabled 的适用边界?

A spring.threads.virtual.enabled 开启,适合 IO 密集阻塞场景,CPU 密集与平台线程依赖需评估 ✓ 正确答案
B 虚拟线程适合 CPU 密集
C 所有场景都该用虚拟线程
D 虚拟线程占平台线程
#

4. Spring Boot 4 的 RestTestClient 替代 RestTemplate + WebTestClient 的统一集成测试入口:链式 API 的真实工程取舍?

A 只用于 Servlet
B 无法替代 WebFlux 测试
C RestTestClient 统一集成测试入口,链式断言,替代 RestTemplate/WebTestClient ✓ 正确答案
D 链式 API 复杂
#

5. Spring Boot 4 默认开启 OpenTelemetry Micrometer Observation 自动埋点:手动埋点 vs 自动埋点的边界?

A 自动埋点覆盖全部
B 手动埋点覆盖框架
C 自动埋点覆盖框架组件,业务自定义需手动 Observation 埋点 ✓ 正确答案
D 无需手动埋点
#

6. Spring Boot 4 的 @ConfigurationProperties 绑定、宽松绑定与校验

A 不支持宽松绑定
B 绑定后不可刷新
C 无法校验
D 支持强类型绑定、宽松绑定(多种命名)与 @Validated 校验 ✓ 正确答案
#

7. Spring Boot 4 对 GraalVM Native Image 的一等公民支持的工程价值?

A Native 启动快、内存低、云原生友好,但 AOT 构建复杂 ✓ 正确答案
B Native 启动慢
C Native 内存高
D Native 无价值
#

8. Spring Framework 7 与 Spring Boot 4 协同下 AOT 提前编译的边界?

A AOT 处理所有动态行为
B AOT 处理静态可确定的配置,运行时动态(反射/代理)需声明或运行时处理 ✓ 正确答案
C AOT 无边界
D 动态行为也 AOT
#

9. Null-safety 方面 Spring 7 迁移到 JSpecify 注解体系对业务代码的影响?

A Spring 7 仍用自定义注解
B 无影响
C Spring 7 迁移到 JSpecify 注解体系,业务代码可空性注解需迁移 ✓ 正确答案
D JSpecify 与 Kotlin 无关
#

10. Spring Boot 4 模块化拆分(按 starter 细分 jar)对依赖体积与启动时间的影响?

A 模块化增加依赖体积
B 按需引入模块减小依赖体积、可能加快启动,但版本管理更复杂 ✓ 正确答案
C 拆分无影响
D 启动更慢
#

11. Spring Framework 7 的 @RequestMapping version 参数实现 API 版本控制:与 Spring Cloud 路由的协作?

A 网关按版本路由服务,Framework 的 version 参数在服务内匹配 handler,分层版本控制 ✓ 正确答案
B 两者冲突
C version 参数管路由
D 网关管方法匹配
#

12. Spring Boot 4 模块化架构 + Spring Modulith 与 Jakarta EE 11 基线 (Servlet 6.1) 的真实迁移工作量评估?

A 升级 Boot 4 需处理依赖与 Jakarta,Modulith 模块化增加工作量,分阶段迁移 ✓ 正确答案
B 迁移零成本
C 只需换版本号
D Jakarta 无影响
#

13. Spring Boot 4 启动时虚拟线程自动适配的边界:哪些阻塞 IO 调用仍需手工替换?

A 全部自动适配
B synchronized 也自动适配
C 自动适配 Web 请求,synchronized 长持有、线程池、特定驱动阻塞需手工替换 ✓ 正确答案
D 无需评估
#

14. Spring Boot 4 外部化配置的优先级(properties/YAML/环境变量/命令行)

A 命令行 > 环境变量 > 外部文件 > 内部文件 > 默认 ✓ 正确答案
B 配置文件最高
C 环境变量最高
D 优先级无差别
#

15. Spring Boot 测试切片(@WebMvcTest/@DataJpaTest)与 @SpringBootTest 的选择

A 切片测试加载全部
B 一律用 @SpringBootTest
C 切片测试慢
D @WebMvcTest/@DataJpaTest 只加载单层(快),@SpringBootTest 加载完整上下文(集成) ✓ 正确答案
#

16. Spring Boot 4 的自动配置变化,@AutoConfiguration 与条件注解的评估顺序如何?

A 自动配置用 @AutoConfiguration + 条件注解,按顺序评估,@ConditionalOnMissingBean 允许覆盖 ✓ 正确答案
B 自动配置无条件
C 条件注解非顺序
D 无法覆盖自动配置
#

17. Spring Boot 4 内置接口式 HTTP 客户端 @HttpExchange 替代 OpenFeign 的工程价值与边界?

A 需 OpenFeign 依赖
B @HttpExchange 原生接口式 HTTP 客户端,轻量但能力较 OpenFeign 简单 ✓ 正确答案
C 与 OpenFeign 等价
D 无法声明 HTTP
#

18. Spring Boot 4 的优雅停机(graceful shutdown)与流量摘除

A server.shutdown=graceful 排空在途请求,配合注册中心/readiness 摘除停止新流量 ✓ 正确答案
B 停机直接杀进程
C 无需排空
D 摘除无关