CUSTOMER项目的修改的逻辑
1、将源码包里面的类复制到具体的服务里面
2、添加自己的过滤器处理Traceid的问题
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) { try { //判断请求头里面有没有TraceID,有就使用 HttpServletRequest hreq = (HttpServletRequest)request; String reqThreadUUID = hreq.getHeader("X-B3-TraceId"); //获得Filter00TimeConsuming里面初始化得user得信息,用来生成TraceID User user = ThreadLocalContext.get().getUser(); //生成规则待确认 TODO String threadLoTraceID = StringUtils.isEmpty(reqThreadUUID)? UUID.shortUUID():reqThreadUUID; Map<String, String> extendInfoMap = new HashMap<>(); extendInfoMap.put("X-B3-TraceId",threadLoTraceID); ThreadLocalContext.get().setExtendInfo(extendInfoMap); filterChain.doFilter(request, response); } catch (Throwable var11) { Ulog.error(var11); } }
@Bean public FilterRegistrationBean filterTraceID() { Ulog.setCacheManager(new LoggerCache()); FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new FilterTraceIDFilter()); registration.addUrlPatterns(new String[]{"/*"}); registration.setName("filterTraceID"); registration.setOrder(5); return registration; }
3、将自己的过滤器注册到WebFilterConfig的最后,不影响之前的过滤器的逻辑
4、RestTemplateUtils
5、HttpUtils
under新项目修改的逻辑