package com.iailab.framework.tracer.config; import com.iailab.framework.common.enums.WebFilterOrderEnum; import com.iailab.framework.tracer.core.aop.BizTraceAspect; import com.iailab.framework.tracer.core.filter.TraceFilter; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; /** * Tracer é…置类 * * @author mashu */ @AutoConfiguration @ConditionalOnClass({BizTraceAspect.class}) @EnableConfigurationProperties(TracerProperties.class) @ConditionalOnProperty(prefix = "iailab.tracer", value = "enable", matchIfMissing = true) public class IailabTracerAutoConfiguration { // TODO @iailab:é‡è¦ã€‚ç›®å‰ opentracing 版本å˜åœ¨å†²çªï¼Œè¦ä¹ˆä¿è¯ skywalking,è¦ä¹ˆä¿è¯é˜¿é‡Œäº‘çŸä¿¡ sdk // @Bean // public TracerProperties bizTracerProperties() { // return new TracerProperties(); // } // // @Bean // public BizTraceAspect bizTracingAop() { // return new BizTraceAspect(tracer()); // } // // @Bean // public Tracer tracer() { // // 创建 SkywalkingTracer 对象 // SkywalkingTracer tracer = new SkywalkingTracer(); // // 设置为 GlobalTracer 的追踪器 // GlobalTracer.register(tracer); // return tracer; // } /** * 创建 TraceFilter 过滤器,å“应 header 设置 traceId */ @Bean public FilterRegistrationBean<TraceFilter> traceFilter() { FilterRegistrationBean<TraceFilter> registrationBean = new FilterRegistrationBean<>(); registrationBean.setFilter(new TraceFilter()); registrationBean.setOrder(WebFilterOrderEnum.TRACE_FILTER); return registrationBean; } }