From 63019731da25a93811d50d5eeb7438e65aa3bd53 Mon Sep 17 00:00:00 2001 From: liuchuang Date: Tue, 26 Nov 2019 17:18:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0feign=E8=BD=AC=E5=8F=91header?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=8B=A6=E6=88=AA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/config/FeignRequestInterceptor.java | 30 +++++++++++++++++++ .../esua/epdc/feign/WorkIssueFeignClient.java | 4 +-- .../esua/epdc/feign/WorkItemFeignClient.java | 6 ++-- .../src/main/resources/application.yml | 1 + 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java new file mode 100644 index 000000000..91146b3bb --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.config; + +import com.elink.esua.epdc.commons.tools.constant.Constant; +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; + +/** + * + * feign转发header参数 + * + * @Author:liuchuang + * @Date:2019/11/26 16:29 + */ +@Configuration +public class FeignRequestInterceptor implements RequestInterceptor { + + @Override + public void apply(RequestTemplate template) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + template.header(Constant.USER_KEY, request.getHeader(Constant.USER_KEY)); + } +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java index 6e7af1e0b..550eb0eb7 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.config.FeignRequestInterceptor; import com.elink.esua.epdc.dto.category.EventCategoryDTO; import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO; import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO; @@ -15,12 +16,11 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; -@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkIssueFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkIssueFeignClientFallback.class, configuration = FeignRequestInterceptor.class) public interface WorkIssueFeignClient { /** diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java index 35ad9442a..e2cff982d 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java @@ -2,17 +2,15 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.SysDeptDTO; +import com.elink.esua.epdc.config.FeignRequestInterceptor; import com.elink.esua.epdc.dto.item.ItemEvaluateDeptDTO; import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.result.*; -import com.elink.esua.epdc.feign.fallback.ItemFeignClientFallback; import com.elink.esua.epdc.feign.fallback.WorkItemFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -21,7 +19,7 @@ import java.util.List; * @Author LPF * @Date 2019/11/18 16:39 */ -@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkItemFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkItemFeignClientFallback.class, configuration = FeignRequestInterceptor.class) public interface WorkItemFeignClient { diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml index 507eed358..eb99e115b 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml @@ -58,6 +58,7 @@ hystrix: default: execution: isolation: + strategy: SEMAPHORE thread: timeoutInMilliseconds: 60000 #缺省为1000