feat(trace): 添加请求上下文贡献者 Bean

- 新增 requestContributor 方法,创建 ContextFieldContributor 实例
- 定义请求上下文中需要维护的字段集合- 优化 TraceRequestIdProvider 方法的注释说明
This commit is contained in:
gewuyou 2025-06-22 20:13:26 +08:00
parent ed8bb7cc91
commit bdba342daa

View File

@ -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)
)
)