From bdba342daa999f2563db32091aa7998a1d6fb402 Mon Sep 17 00:00:00 2001 From: gewuyou Date: Sun, 22 Jun 2025 20:13:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(trace):=20=E6=B7=BB=E5=8A=A0=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E4=B8=8A=E4=B8=8B=E6=96=87=E8=B4=A1=E7=8C=AE=E8=80=85?= =?UTF-8?q?=20Bean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 requestContributor 方法,创建 ContextFieldContributor 实例 - 定义请求上下文中需要维护的字段集合- 优化 TraceRequestIdProvider 方法的注释说明 --- .../autoconfig/TraceAutoConfiguration.kt | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/forgeboot-trace/forgeboot-trace-autoconfigure/src/main/kotlin/com/gewuyou/forgeboot/trace/autoconfig/TraceAutoConfiguration.kt b/forgeboot-trace/forgeboot-trace-autoconfigure/src/main/kotlin/com/gewuyou/forgeboot/trace/autoconfig/TraceAutoConfiguration.kt index 5f9508a..89ac4de 100644 --- a/forgeboot-trace/forgeboot-trace-autoconfigure/src/main/kotlin/com/gewuyou/forgeboot/trace/autoconfig/TraceAutoConfiguration.kt +++ b/forgeboot-trace/forgeboot-trace-autoconfigure/src/main/kotlin/com/gewuyou/forgeboot/trace/autoconfig/TraceAutoConfiguration.kt @@ -28,10 +28,11 @@ class TraceAutoConfiguration( private val traceProperties: TraceProperties, ) { /** - * 请求ID提供者(用于生成请求ID) + * 创建请求ID提供者Bean * - * 该提供者用于生成请求ID,默认为TraceRequestIdProvider - * @return RequestIdProvider实例 + * 用于生成分布式请求链路追踪所需的唯一请求标识 + * @param contextHolder 上下文持有者,用于跨组件传递请求上下文 + * @return 初始化完成的TraceRequestIdProvider实例 */ @Bean @ConditionalOnMissingBean(RequestIdProvider::class) @@ -39,13 +40,24 @@ class TraceAutoConfiguration( log.info("TraceRequestIdProvider 已创建!") return TraceRequestIdProvider(traceProperties,contextHolder) } + + /** + * 创建请求上下文贡献者Bean + * + * 定义请求上下文中需要维护的字段定义集合 + * @return ContextFieldContributor实例,包含完整的上下文字段定义 + */ @Bean fun requestContributor() = ContextFieldContributor { setOf( FieldDef( - header = traceProperties.requestIdHeaderName, // 请求-响应头名 - key = traceProperties.requestIdMdcKey, // ctx/MDC 键 - generator = { UUID.randomUUID().toString() }, // 如果前端没带,用这个生成 + // 请求-响应头名 + header = traceProperties.requestIdHeaderName, + // ctx/MDC 键 + key = traceProperties.requestIdMdcKey, + // 前端未携带时的生成策略 + generator = { UUID.randomUUID().toString() }, + // 作用域范围 scopes = setOf(Scope.HEADER, Scope.MDC, Scope.REACTOR) ) )