package com.baiyue.common.web; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestClient; /** Adds trace propagation to Spring-managed RestClient builders. */ @AutoConfiguration(afterName = "org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration") @ConditionalOnClass({RestClient.class, RestClientCustomizer.class}) public class RestClientTracePropagationAutoConfiguration { @Bean @ConditionalOnMissingBean(RestClientTraceInterceptor.class) RestClientTraceInterceptor restClientTraceInterceptor() { return new RestClientTraceInterceptor(); } @Bean RestClientTraceCustomizer baiyueTraceRestClientCustomizer(RestClientTraceInterceptor interceptor) { return new RestClientTraceCustomizer(interceptor); } }