diff --git a/forgeboot-trace/forgeboot-trace-autoconfigure/build.gradle.kts b/forgeboot-trace/forgeboot-trace-autoconfigure/build.gradle.kts index 4e98362..f4af3cf 100644 --- a/forgeboot-trace/forgeboot-trace-autoconfigure/build.gradle.kts +++ b/forgeboot-trace/forgeboot-trace-autoconfigure/build.gradle.kts @@ -4,6 +4,7 @@ plugins { dependencies { implementation(platform(libs.springBootDependencies.bom)) implementation(libs.springBoot.autoconfigure) + implementation(project(Modules.Context.STARTER)) compileOnly(platform(libs.springCloudDependencies.bom)) compileOnly(libs.springBootStarter.web) compileOnly(libs.springBootStarter.webflux) 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 c905889..5f9508a 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 @@ -4,6 +4,7 @@ package com.gewuyou.forgeboot.trace.autoconfig import com.gewuyou.forgeboot.context.api.ContextFieldContributor import com.gewuyou.forgeboot.context.api.entities.FieldDef import com.gewuyou.forgeboot.context.api.enums.Scope +import com.gewuyou.forgeboot.context.impl.ContextHolder import com.gewuyou.forgeboot.core.extension.log import com.gewuyou.forgeboot.trace.api.RequestIdProvider import com.gewuyou.forgeboot.trace.api.config.TraceProperties @@ -24,7 +25,7 @@ import java.util.UUID @Configuration @EnableConfigurationProperties(TraceProperties::class) class TraceAutoConfiguration( - private val traceProperties: TraceProperties + private val traceProperties: TraceProperties, ) { /** * 请求ID提供者(用于生成请求ID) @@ -34,9 +35,9 @@ class TraceAutoConfiguration( */ @Bean @ConditionalOnMissingBean(RequestIdProvider::class) - fun traceRequestIdProvider(): TraceRequestIdProvider { + fun traceRequestIdProvider(contextHolder: ContextHolder): TraceRequestIdProvider { log.info("TraceRequestIdProvider 已创建!") - return TraceRequestIdProvider(traceProperties) + return TraceRequestIdProvider(traceProperties,contextHolder) } @Bean fun requestContributor() = ContextFieldContributor { diff --git a/forgeboot-trace/forgeboot-trace-impl/build.gradle.kts b/forgeboot-trace/forgeboot-trace-impl/build.gradle.kts index 02fd422..ea7feaf 100644 --- a/forgeboot-trace/forgeboot-trace-impl/build.gradle.kts +++ b/forgeboot-trace/forgeboot-trace-impl/build.gradle.kts @@ -1,7 +1,7 @@ dependencies { implementation(platform(libs.springBootDependencies.bom)) api(project(Modules.Core.EXTENSION)) - api(project(Modules.Context.STARTER)) + compileOnly(project(Modules.Context.STARTER)) compileOnly(project(Modules.TRACE.API)) compileOnly(platform(libs.springCloudDependencies.bom)) compileOnly(libs.springBootStarter.webflux) @@ -9,5 +9,4 @@ dependencies { // Spring Cloud OpenFeign (Compile Only) // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign compileOnly(libs.springCloudStarter.openfeign) - kapt(libs.springBoot.configuration.processor) } diff --git a/forgeboot-trace/forgeboot-trace-impl/src/main/kotlin/com/gewuyou/forgeboot/trace/impl/provider/TraceRequestIdProvider.kt b/forgeboot-trace/forgeboot-trace-impl/src/main/kotlin/com/gewuyou/forgeboot/trace/impl/provider/TraceRequestIdProvider.kt index b14de19..fa234fa 100644 --- a/forgeboot-trace/forgeboot-trace-impl/src/main/kotlin/com/gewuyou/forgeboot/trace/impl/provider/TraceRequestIdProvider.kt +++ b/forgeboot-trace/forgeboot-trace-impl/src/main/kotlin/com/gewuyou/forgeboot/trace/impl/provider/TraceRequestIdProvider.kt @@ -1,6 +1,7 @@ package com.gewuyou.forgeboot.trace.impl.provider -import com.gewuyou.forgeboot.context.impl.StringContextHolder +import com.gewuyou.forgeboot.context.api.extension.get +import com.gewuyou.forgeboot.context.impl.ContextHolder import com.gewuyou.forgeboot.trace.api.RequestIdProvider import com.gewuyou.forgeboot.trace.api.config.TraceProperties @@ -12,7 +13,8 @@ import com.gewuyou.forgeboot.trace.api.config.TraceProperties * @author gewuyou */ class TraceRequestIdProvider( - private val traceProperties: TraceProperties + private val traceProperties: TraceProperties, + private val contextHolder: ContextHolder ): RequestIdProvider { /** * 获取请求ID @@ -22,6 +24,6 @@ class TraceRequestIdProvider( * @return 请求ID的字符串表示 */ override fun getRequestId(): String { - return StringContextHolder.get(traceProperties.requestIdMdcKey) ?:throw RuntimeException("requestId is null") + return contextHolder[traceProperties.requestIdMdcKey] ?:throw RuntimeException("requestId is null") } } \ No newline at end of file