All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.biz.trace.config.TraceConfigurer Maven / Gradle / Ivy

Go to download

BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。

The newest version!
package com.biz.trace.config;

import com.biz.trace.id.DefaultTraceIdServiceImpl;
import com.biz.trace.id.TraceIdService;
import com.biz.trace.interceptor.TraceInterceptor;
import com.biz.trace.store.DefaultTraceStoreServiceImpl;
import com.biz.trace.store.TraceStoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;

/**
 * 链路追踪配置类。
 *
 * 

该配置类负责初始化和配置链路追踪相关的服务组件。仅当配置项 biz.trace.enabled=true 时,该配置类才会生效。

* *

默认情况下,如果没有其他自定义的 {@link TraceStoreService} 或 {@link TraceIdService} 实现类, * 本类将提供 {@link DefaultTraceStoreServiceImpl} 和 {@link DefaultTraceIdServiceImpl} 的默认实现。

* *
 * 示例配置:
 * biz.trace.enabled=true
 * 
* *

此类依赖于以下配置项:

*
    *
  • biz.trace.enabled - 是否启用链路追踪功能
  • *
* * @author francis * @since 1.0.1 * @see TraceStoreService * @see TraceIdService * @see DefaultTraceStoreServiceImpl * @see DefaultTraceIdServiceImpl */ @Slf4j @ConditionalOnProperty(prefix = "biz.trace", name = "enabled", havingValue = "true") public class TraceConfigurer { /** * 创建并返回 {@link TraceInterceptor} 的 Bean 实例。 * 该拦截器用于在所有 HTTP 请求中添加链路追踪的逻辑。 * * @param traceStoreService 注入的 {@link TraceStoreService} 实例 * @param traceIdService 注入的 {@link TraceIdService} 实例 * @return TraceInterceptor Bean 实例 */ @Bean public TraceInterceptor traceInterceptor(TraceStoreService traceStoreService, TraceIdService traceIdService) { return new TraceInterceptor(traceStoreService, traceIdService); } /** * 提供 {@link TraceStoreService} 的默认实现。 * *

如果 Spring 上下文中不存在其他 {@link TraceStoreService} 的 Bean,则该方法将返回 {@link DefaultTraceStoreServiceImpl} 的实例。

* * @return 默认的 {@link TraceStoreService} 实现 */ @Bean @ConditionalOnMissingBean(TraceStoreService.class) public TraceStoreService traceStoreService() { return new DefaultTraceStoreServiceImpl(); } /** * 提供 {@link TraceIdService} 的默认实现。 * *

如果 Spring 上下文中不存在其他 {@link TraceIdService} 的 Bean,则该方法将返回 {@link DefaultTraceIdServiceImpl} 的实例。

* * @return 默认的 {@link TraceIdService} 实现 */ @Bean @ConditionalOnMissingBean(TraceIdService.class) public TraceIdService traceIdService() { return new DefaultTraceIdServiceImpl(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy