Spring Boot 4 + Spring Framework 7 核心

共 18 题
#

1. Spring Boot 4(GA)+ Spring Framework 7 的关键演进,JDK 17 最低版本、AOT 优化、HTTP Service Client 接口稳定

A Spring Boot 4 仍以 JDK 8 为最低版本
B HTTP Service Client 在 Spring Boot 4 中仍为实验性
C Spring Boot 4 移除了对虚拟线程的支持
D Spring Boot 4 将 JDK 17 作为最低版本,并强化 AOT 优化与 HTTP Service Client 的稳定 ✓ 正确答案
#

2. Spring Modulith 2.0 的模块化与微服务迁移,模块边界检测(Modulithite)、事件外化、跨模块事务的工程实践如何?

A Modulith 允许模块间任意直接依赖,无需检测
B Modulith 通过边界检测与事件外化解耦模块,建议将事务边界限制在单模块内 ✓ 正确答案
C 跨模块长事务是 Modulith 推荐的设计
D Modulith 只能用于微服务,不能用于单体
#

3. Spring AI 2.0 核心,ChatClient API、Tool Calling、Advisors 链式拦截、Vector Store 抽象、Prompt 模板引擎

A ChatClient 提供统一对话 API,Advisors 支持链式拦截,Vector Store 抽象了向量检索 ✓ 正确答案
B Spring AI 只支持单一模型,无法切换
C Spring AI 不支持 Tool Calling
D Vector Store 抽象只能用于单一数据库
#

4. Spring Boot 4 的模块化(Modulith)与 Java 基线升级,对现有应用迁移的影响面?

A 迁移只涉及配置,不影响代码结构
B Modulith 是强制要求,所有应用必须重构
C Spring Boot 4 完全兼容 JDK 8,无迁移影响
D JDK 17 基线是强制要求,Modulith 模块化是可选项 ✓ 正确答案
#

5. Spring Framework 7 的容器与 Bean 生命周期在 AOT 下的变化(构造注入优先、提前实例化)

A AOT 下构造注入优先、Bean 提前实例化,减少运行时反射与扫描 ✓ 正确答案
B AOT 完全依赖运行时反射解析 Bean
C AOT 下字段注入与构造注入完全等价
D AOT 会大幅增加启动时的反射开销
#

6. Spring Framework 7 的 HTTP Service Clients(声明式 HTTP 客户端)与 WebClient 的取舍

A HTTP Interface 是响应式客户端,WebClient 是声明式客户端
B HTTP Interface 提供声明式、类型安全的接口调用,WebClient 提供底层的响应式能力,二者互补 ✓ 正确答案
C 两者完全等价,可任意互换
D HTTP Interface 不支持任何底层实现
#

7. Spring 7 的 JSpecify 集成与 Null Safety 注解(JSpecify @Nullable / @NonNull)的工程边界

A 空安全注解在运行时强制检查所有参数
B JSpecify 注解提供开发期/静态分析的空语义提示,不改变运行时行为 ✓ 正确答案
C JSpecify 只能用于 Spring 内部,应用无法使用
D 空安全注解会显著降低运行时性能
#

8. Spring Boot 4 的自动配置/Starter 命名与 3.x 的兼容性,升级清单如何准备?

A 核心配置大体兼容,但依赖类、包名与配置属性可能调整,需按迁移指南逐项核对 ✓ 正确答案
B Spring Boot 4 与 3.x 完全二进制兼容,无需任何调整
C Spring Boot 4 移除了所有自动配置
D 升级只需改 pom 版本号即可
#

9. Spring Boot 4 的模块化,Modulith 与跨模块事务边界如何设计?

A 推荐跨模块长事务以保证强一致
B 事务边界限制在单模块内,跨模块通过事件外化与最终一致实现 ✓ 正确答案
C 模块间不通过任何机制通信
D 跨模块事务是 Modulith 的唯一一致性方案
#

10. Spring Boot 4 的 AOT 与镜像支持,为 GraalVM Native 的构建期优化如何?

A AOT 在构建期生成 Bean 注册代码并自动收集反射/代理/资源元数据,支撑原生镜像 ✓ 正确答案
B AOT 仅在运行时生成反射元数据
C GraalVM Native 完全不需要 AOT 支持
D 原生镜像下所有动态特性都完全不受限
#

11. Spring Boot 4 的结构化日志(JSON)与日志桥接默认值

A Spring Boot 4 默认只输出纯文本日志,不支持 JSON
B Spring Boot 4 移除了日志能力
C 结构化日志必须引入第三方框架才能实现
D Spring Boot 4 默认支持结构化 JSON 日志并统一日志桥接,便于采集与追踪 ✓ 正确答案
#

12. Spring Framework 7 对虚拟线程、GraalVM Native 与 HTTP/3 的支持边界?

A 虚拟线程自动解决所有阻塞问题,无任何边界
B Native 下所有反射特性都自动可用
C Spring Framework 7 完全不支持虚拟线程
D 虚拟线程支持存在钉住等边界,Native 下动态特性受限,HTTP/3 依赖底层实现 ✓ 正确答案
#

13. Spring Boot 4 的 GraalVM Native Image 默认支持与 AOT 缓存(Spring AOT Cache)

A GraalVM Native Image 在 Spring Boot 4 中是一等公民,AOT Cache 可复用元数据加速构建 ✓ 正确答案
B Spring Boot 4 不支持原生镜像
C AOT Cache 会每次都重新做完整分析,无加速效果
D 原生镜像构建无需任何 AOT 处理
#

14. Spring Framework 7 的基线,JDK 版本要求与 Jakarta EE 11 的影响如何?

A 最低 JDK 为 17,并采用 Jakarta EE 11,相关依赖需相应升级 ✓ 正确答案
B 最低 JDK 为 8,且不依赖 Jakarta EE
C 最低 JDK 为 21,且无需考虑 Servlet 版本
D 采用 javax.* 命名空间,与 EE 9 后一致
#

15. Spring Framework 7 的 HTTP Interface 客户端,声明式远程调用如何设计?

A 接口方法必须手写完整 HTTP 实现逻辑
B 通过 @HttpExchange 注解声明接口方法,Spring 自动生成实现,类型安全且易测试 ✓ 正确答案
C HTTP Interface 不支持任何请求体
D 接口必须继承特定基类才能使用
#

16. Spring Boot 4 的观测性,Micrometer 与 OTel 的集成演进如何?

A Spring Boot 4 只支持日志,不支持指标与追踪
B Micrometer 提供统一指标 API,OTel 作为一等公民实现 metrics/traces/logs 的统一 ✓ 正确答案
C Micrometer 与 OTel 完全无关,各自独立
D Spring Boot 4 移除了所有观测性能力
#

17. Spring Framework 7 的 API 变化,废弃项与迁移路径如何?

A 主版本升级不会移除任何 API
B 所有旧 API 都保留,无迁移成本
C 会废弃并移除部分旧 API,需按官方迁移指南用替代方案替换并回归验证 ✓ 正确答案
D 废弃 API 只能手动重构,无官方替代
#

18. Spring Boot 4 的 Testcontainers 集成(@ServiceConnection)与测试改进

A 使用 Testcontainers 必须手动配置每个连接 URL
B @ServiceConnection 只在生产环境生效,测试中无效
C @ServiceConnection 会自动把 Testcontainers 容器的连接信息注入 Spring 上下文 ✓ 正确答案
D Spring Boot 4 移除了 Testcontainers 支持