1.feign的使用場景
注意:誰發起feign的請求,feign的攔截器就定義在誰身上,攔截器的目的是為了傳遞令牌。
2.使用步驟:
(1)創建攔截器
在changgou_common服務中創建一個com.changgou.interceptor.FeignInterceptor攔截器,並將所有頭文件數據再次加入到Feign請求的微服務頭文件中,代碼如下:
@Component public class FeignInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); if (requestAttributes!=null){ HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); if (request!=null){ Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames!=null){ while (headerNames.hasMoreElements()){ String headerName = headerNames.nextElement(); if (headerName.equals("authorization")){ String headerValue = request.getHeader(headerName); requestTemplate.header(headerName,headerValue);//核心代碼 } } } } } } }
2) 更改changgou_order_web啟動類,添加攔截器聲明(誰發起feign的請求,就把feign攔截器放在誰上面)
@Bean public FeignInterceptor feignInterceptor(){ return new FeignInterceptor(); }