可以指定哪个feign走这套逻辑
方法一:详细
1.Feign拦截器,不被spring管理
public class FeignInterceptor implements RequestInterceptor {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes == null ) {
log.info("FeignInterceptor attributes is null");
return;
}
HttpServletRequest request = attributes.getRequest();
if (request == null) {
log.info("FeignInterceptor request is null");
return;
}
String includingInactiveMls = request.getHeader("Including-Inactive-Mls");
if (StringUtils.isNotEmpty(includingInactiveMls)){
log.info("FeignInterceptor add includingInactiveMls to header. includingInactiveMls:{}",includingInactiveMls);
requestTemplate.header("Including-Inactive-Mls",includingInactiveMls);
}
}
}
2.FeignConfi
public class FeignInterceptorConfig {
@Bean
public RequestInterceptor customRequestInterceptor(){
return new FeignInterceptor();
}
}
3.在要使用的XXFeignClient中注入配置
@FeignClient(name = "searchCenter",configuration = FeignInterceptorConfig.class, url = "http://127.0.0.1:7007/api")
@Component
public interface SearchCenterClient extends ListingClient {
}
方法二:一步到位
1.编写conifg
@Configuration
public class SearchFeignClientsConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return (RequestTemplate requestTemplate) -> {
ServletRequestAttributes attributes =
(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes != null) {
HttpServletRequest request = attributes.getRequest();
String includingInactiveMls = request.getHeader("isAllMls");
requestTemplate.header("isAllMls", includingInactiveMls);
}
};
}
}
2.在要使用的XXFeignClient中注入配置
@FeignClient(name = "searchCenter",configuration = FeignInterceptorConfig.class, url = "http://127.0.0.1:7007/api")
@Component
public interface SearchCenterClient extends ListingClient {
}