我们的架构是:开启了多个微服务。服务端和UI,app分开。这样子在请求的时候,有时候,我们需要headers信息在ui和服务端之间传递。FeignClient就使用如下方式:

注意:放置在你的UI端

@Bean
public RequestInterceptor headerInterceptor() {
    return template -> {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        Enumeration<String> headerNames = request.getHeaderNames();
        if (headerNames != null) {
            while (headerNames.hasMoreElements()) {
                String name = headerNames.nextElement();
                String values = request.getHeader(name);
                template.header(name, values);
            }
        }
    };
}

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐