diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java new file mode 100644 index 0000000..1243f01 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/config/SeataInterceptorConfig.java @@ -0,0 +1,36 @@ +package com.chinaunicom.mall.ebtp.extend.config; + +import io.seata.core.context.RootContext; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +/** + * seata拦截器配置类 解除seata绑定 + * + * @author fqj + * @date 2022-01-13 + */ +@Configuration +public class SeataInterceptorConfig implements WebMvcConfigurer { + + @Override + public void addInterceptors(InterceptorRegistry registry) { + InterceptorRegistration interceptor = registry.addInterceptor(new HandlerInterceptor() { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if (!Objects.isNull(RootContext.getXID())) { + RootContext.unbind(); + } + return true; + } + }); + interceptor.addPathPatterns("/**"); + } +}