feign包名路徑新增問題
阿新 • • 發佈:2018-12-28
1. feign包名路徑新增問題
1.1. 問題
在SpringCloud中使用feign呼叫路徑中,不能在類上直接新增@RequestMapping(value = "/hospital-auth")作為公共路徑
1.2. 解決方式
- 新增path
@FeignClient(path = "/hospital-auth",value = "hospital-auth", fallback = HospitalFallBack.class, configuration = FeignMultipartSupportConfig.class)
1.3. 完整程式碼例項
package com.zhiyis.framework.service.remote.feign; import com.zhiyis.common.report.ResponseReport; import com.zhiyis.framework.service.remote.config.FeignMultipartSupportConfig; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; /** * @author laoliangliang * @date 2018/11/2 13:55 */ @FeignClient(path = "/hospital-auth",value = "hospital-auth", fallback = HospitalFallBack.class, configuration = FeignMultipartSupportConfig.class) public interface HospitalFeign { @RequestMapping(value = "/rpc.api", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) ResponseReport doRemoteCall(@RequestParam(value = "report", required = false) String report, @RequestPart(value = "file", required = false) MultipartFile multipartFile); @RequestMapping(value = "/rpc.api") ResponseReport doRemoteCall(@RequestParam(value = "report", required = false) String report); } @Component class HospitalFallBack implements HospitalFeign { @Override public ResponseReport doRemoteCall(String report, MultipartFile multipartFile) { ResponseReport responseReport = new ResponseReport(); responseReport.returnError("9999", "HospitalFeign 醫院服務呼叫失敗"); return responseReport; } @Override public ResponseReport doRemoteCall(String report) { ResponseReport responseReport = new ResponseReport(); responseReport.returnError("9999", "HospitalFeign 醫院服務呼叫失敗"); return responseReport; } }