全部学科
Python全栈
python
NodeJS全栈
nodejs

SpringBoot高级技能认证

20 题 90 分钟 难度:★★★

考察知识点

  • 内嵌容器深度调优:Tomcat/Jetty底层配置、线程池优化、连接器调优、性能参数配置
  • 底层启动源码剖析:SpringApplication启动流程、Environment构建机制、Bean加载原理
  • 线上性能监控与压测优化:Actuator监控、JVM调优、压测方法论、性能瓶颈定位
  • 高阶扩展与自定义注解:Spring扩展点、自定义注解开发、BeanPostProcessor应用
💡 参考答案在文末
判断题
1

Spring Boot通过ConfigurationPropertySources.attach()方法将原始PropertySource转换为ConfigurationPropertySource,提供了统一的属性访问API,支持松散绑定(relaxed binding)。

A

B

单选题
2

在Spring Boot Actuator中,自定义健康检查指示器需要实现哪个接口?该接口的核心方法是什么?

A

实现HealthCheck接口,提供check()方法

B

实现HealthIndicator接口,提供health()方法返回Health对象

C

实现StatusIndicator接口,提供getStatus()方法

D

继承AbstractHealthIndicator类,重写doHealthCheck()方法

3

在Spring Boot应用中集成Prometheus监控时,需要添加哪个依赖并配置什么内容才能正确暴露Prometheus格式的指标?

A

添加micrometer-core依赖,配置management.endpoints.web.exposure.include=prometheus

B

添加micrometer-registry-prometheus依赖,配置management.endpoints.web.exposure.include=prometheus

C

添加spring-boot-starter-actuator依赖,配置management.metrics.export.prometheus.enabled=true

D

添加prometheus-client依赖,配置management.endpoint.prometheus.enabled=true

4

关于Spring Boot的监听器机制,以下描述正确的是?

A

ApplicationListener通过META-INF/spring.factories注册,监听所有Spring事件

B

SpringApplicationRunListener只能监听Spring Boot启动事件,不能监听Spring事件

C

EventPublishingRunListener将SpringApplicationRunListener事件转发给ApplicationListener

D

自定义监听器必须继承SpringApplicationRunListener

5

在Spring Boot Actuator中,以下哪个端点用于查看应用的核心指标信息,如JVM内存、CPU使用率等?

A

/actuator/health

B

/actuator/metrics

C

/actuator/info

D

/actuator/env

6

在生产环境诊断Spring Boot内嵌容器性能问题时,以下哪种方式最推荐用于获取线程池实时状态?

A

使用JMX连接远程获取MBean属性

B

在代码中添加日志打印线程池信息

C

使用jstack命令生成线程快照

D

配置Actuator的/actuator/metrics端点并启用Prometheus导出

7

Spring Boot启动时会根据应用类型创建不同的Environment实现类,对于标准的Web应用(SpringApplicationBuilder.web(WebApplicationType.SERVLET)),创建的是哪种Environment?

A

StandardEnvironment

B

ServletEnvironment

C

StandardServletEnvironment

D

ReactiveEnvironment

8

自定义健康指示器在执行健康检查时可能涉及外部服务调用,如果检查逻辑耗时较长会影响/actuator/health端点响应时间。以下哪种方案可以有效解决这个问题?

A

使用@Async注解让健康检查异步执行,不影响主线程

B

使用ReactiveHealthIndicator返回Mono实现异步健康检查

C

在健康检查方法中设置超时,超时后返回DOWN状态

D

配置management.endpoint.health.cache.time-to-live缓存健康结果

9

在Spring Boot应用中配置了多个自定义健康指示器,当访问/actuator/health端点时,系统如何聚合各个健康指示器的状态?哪种状态会作为最终的整体健康状态?

A

所有指示器状态都为UP时才返回UP,否则返回DOWN

B

使用最严重状态作为最终状态:DOWN > OUT_OF_SERVICE > UP

C

只考虑第一个注册的健康指示器状态

D

根据配置的健康指示器顺序依次检查,第一个DOWN就返回

10

在Spring Boot中配置SSL时,以下哪个加密套件选择策略能在安全性和性能之间取得最佳平衡?

A

只使用RSA密钥交换的套件,避免ECDHE的计算开销

B

优先使用ECDHE套件并配置高效曲线(secp256r1或x25519)

C

只使用AES-256-GCM套件,忽略其他算法

D

禁用所有硬件加速,仅使用纯Java实现

11

在Micrometer指标体系中,用于统计HTTP请求响应时间分布的指标类型是什么?该类型指标会自动计算哪些统计数据?

A

Counter,统计请求总数

B

Gauge,统计当前值

C

Timer,统计调用次数、总耗时、最大耗时和百分位分布

D

DistributionSummary,统计请求大小分布

多选题
12

在Spring Boot应用中,以下哪些Actuator端点可以用于监控内嵌Tomcat容器的运行状态?

A

/actuator/metrics 用于查看Tomcat线程池指标

B

/actuator/health 用于检查容器健康状态

C

/actuator/threaddump 用于获取JVM线程堆栈

D

/actuator/mappings 用于查看容器端口映射

13

在Spring Boot启动过程中,以下哪些事件会在ApplicationContext创建之前发布?

A

ApplicationStartingEvent

B

ApplicationEnvironmentPreparedEvent

C

ApplicationPreparedEvent

D

ApplicationContextInitializedEvent

E

ApplicationStartedEvent

14

在构建Spring Boot应用的监控指标体系时,以下哪些指标对于评估系统健康状态和性能瓶颈至关重要?

A

JVM堆内存使用量和GC频率

B

CPU使用率和系统负载

C

数据库连接池活跃连接数和等待队列长度

D

HTTP请求响应时间百分位值(P95、P99)

E

应用启动时间戳

F

线程池活跃线程数和队列任务数

15

在Micrometer指标体系中,合理使用标签(Tags)可以实现多维度监控分析。以下哪些是标签设计的最佳实践?

A

为每个指标添加有意义的业务维度标签,如接口路径、HTTP方法、状态码

B

使用高基数(cardinality)标签值,如用户ID、请求ID等唯一标识

C

限制标签值的可选范围,避免标签组合爆炸

D

使用统一的标签命名规范,如小写字母加下划线

E

避免在标签中包含敏感信息,如密码、token

F

为所有指标添加应用名称、实例IP等公共标签

16

在Spring Boot应用中优化SSL/TLS性能时,以下哪些技术可以有效减少握手开销?

A

启用SSL Session缓存,允许客户端复用之前的会话

B

配置OCSP Stapling减少证书状态验证的往返

C

禁用所有加密套件仅保留一个最安全的

D

启用TLS False Start允许客户端在握手完成前发送数据

E

配置HSTS头部强制使用HTTPS连接

F

使用ALPN协议支持HTTP/2多路复用

17

在Spring Boot内嵌Tomcat中,以下哪些配置可以提升SSL/TLS性能?

A

启用OpenSSL通过native库加速SSL操作

B

增大SSL Session缓存大小

C

强制使用TLSv1.3协议

D

配置更大的密钥库(key store)文件

18

在Spring Boot启动过程中,Environment对象的属性源(PropertySource)加载顺序是怎样的?

A

命令行参数优先级最高,最先加载

B

application.properties/yml文件在系统环境变量之后加载

C

ServletConfig和ServletContext属性在启动后期才加入

D

随机数属性源(random.*)最早加载

E

@PropertySource注解配置的属性源优先级最低

填空题
19

Spring Boot中Environment对象获取属性的方法包括:获取单一属性使用____________方法,判断属性是否存在使用____________方法,获取必需属性(不存在抛异常)使用____________方法。

20

在Spring Boot应用中启用SSL Session缓存,需要在配置文件中设置server.ssl.session-cache-size参数,默认值为____________个session;设置server.ssl.session-timeout参数控制session超时时间,默认为____________秒。

参考答案
1.正确 2.B 3.B 4.C 5.B 6.D 7.C 8.B 9.B 10.B 11.C 12.A; B; C 13.A; B; D 14.A; B; C; D; F 15.A; C; D; E; F 16.A; B; D; F 17.A; B; C 18.A; B; C; E 19.getProperty;containsProperty;getRequiredProperty 20.无限;86400
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 SpringBoot初级技能认证
下一套试卷 → 全局异常统一处理专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码