Java中?springcloud.openfeign應(yīng)用案例解析
OpenFeign是一個顯示聲明式的WebService客戶端。使用OpenFeign能讓編寫Web Service客戶端更加簡單。使用時只需定義服務(wù)接口,然后在上面添加注解。OpenFeign也支持可拔插式的編碼和解碼器。spring cloud對feign進行了封裝,使其支持MVC注解和HttpMessageConverts。和eureka(服務(wù)注冊中心)和ribbon組合可以實現(xiàn)負載均衡。在Spring Cloud中使用OpenFeign,可以做到使用HTTP請求訪問遠程服務(wù),就像調(diào)用本地方法一樣的,開發(fā)者完全感知不到這是在調(diào)用遠程方法,更感知不到在訪問HTTP請求,非常的方便。
1 導入依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>3.1.7</version> </dependency>
2 openfeign接口類編寫
package com.sf.gis.taskmanage.event.feign; import com.alibaba.fastjson.JSONObject; import com.sf.gis.common.domain.dto.*; import com.sf.gis.common.domain.vo.*; import feign.Response; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @FeignClient(contextId = "eventAllocationNewServiceFegin", name = "eventAllocationNewServiceFegin", url = "${newevent.prefixurl}") public interface EventAllocationNewService { /** * 1. POST 獲取工單號 * @param dto * @param token * @param type * @return */ @PostMapping(value = "/order/cOrderNumberRule/getNum", consumes = "application/json", produces = "application/json") EventCommonsVo workOrderNumber(@RequestBody WorkOrderNumberDto dto, @RequestHeader("Authorization") String token, @RequestHeader("content-type") String type); /* EventCommonVo<WorkOrderNumberVo> workOrderNumber(@RequestBody WorkOrderNumberDto dto, @RequestHeader("token") String token, @RequestHeader("content-type") String type); */ /** * 2創(chuàng)建工單接口 * @param dto * @param token * @param type * @return */ @PostMapping(value = "/order/cOrderNumberInfo/create", consumes = "application/json", produces = "application/json") EventCommonsVo createWorkOrder(@RequestBody CreateWorkOrderDto dto, @RequestHeader("Authorization") String token, @RequestHeader("content-type") String type); /** * 3 工單流轉(zhuǎn) * @paramwanderAboutDto * @param token * @param type * @return */ @PostMapping(value = "/order/cOrderCirculation/create", consumes = "application/json", produces = "application/json") EventCommonsVo wanderAbout(@RequestBody ReReportingDto reReportingDto, @RequestHeader("Authorization") String token, @RequestHeader("content-type") String type); /** * 工單處置信息更新接口 * @param workOrderUpdateDto * @param token * @param type * @return */ @PostMapping(value = "/order/cOrderNumberInfo/updateProcessInfo", consumes = "application/json", produces = "application/json") EventCommonVo workOrderUpdate(@RequestBody WorkOrderUpdateDto workOrderUpdateDto, @RequestHeader("Authorization") String token, @RequestHeader("Content-Type") String type); /** * 工單處置信息更新接口 * @param * @param token * @param type * @return */ @PostMapping("/order/cOrderNumberInfo/updateProcessInfo") EventCommonVo workOrderCompleteUpdate(@RequestBody WorkOrderCompleteUpdateDto workOrderCompleteUpdateDto, @RequestHeader("Authorization") String token, @RequestHeader("content-type") String type); /** * 上傳附件 */ @RequestMapping(method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE,value = "/minio/upload") JSONObject upload(@RequestPart("file") MultipartFile file,@PathVariable("fileName") String fileName, @PathVariable("orderNum")String orderNum, @RequestHeader("Authorization") String token); /** * 附件下載 */ @RequestMapping(method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE,value = "/minio/download") Response download(@PathVariable("filename") String filename, @PathVariable("orderNum") String orderNum, @RequestHeader("Authorization") String token); /** * 工單狀態(tài)變更接口(對接到市里) * @param * @param token * @param type * @return */ @PostMapping(value = "/order/cOrderStatusChange/sendMsg", consumes = "application/json", produces = "application/json") EventCommonVo orderStateUpdate(@RequestBody OrderChangeDto orderChangeDto, @RequestHeader("Authorization") String token, @RequestHeader("content-type") String type); }
3 URL 路徑定義
url = "${newevent.prefixurl}")
到此這篇關(guān)于Java中 springcloud.openfeign應(yīng)用案例解析的文章就介紹到這了,更多相關(guān)Java springcloud.openfeign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring通過@Lazy解決構(gòu)造方法形式的循環(huán)依賴問題
這篇文章主要給大家介紹了Spring如何通過@Lazy解決構(gòu)造方法形式的循環(huán)依賴問題,文中有詳細的代碼示例,對大家的學習活工作有一定的幫助,具有一定的參考價值,需要的朋友可以參考下2023-10-10SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn)
本文主要介紹了SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03Java INPUTSTREAM如何實現(xiàn)重復使用
這篇文章主要介紹了Java INPUTSTREAM如何實現(xiàn)重復使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的
這篇文章主要介紹了java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11Java?Api實現(xiàn)Elasticsearch的滾動查詢功能
這篇文章主要介紹了Java?Api實現(xiàn)Elasticsearch的滾動查詢,解決ES每次只能查詢一萬條數(shù)據(jù)的問題,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-08-08Java 數(shù)據(jù)結(jié)構(gòu)之堆的概念與應(yīng)用
堆是一顆完全二叉樹,在這棵樹中,所有父節(jié)點都滿足大于等于其子節(jié)點的堆叫大根堆,所有父節(jié)點都滿足小于等于其子節(jié)點的堆叫小根堆,堆雖然是一顆樹,但是通常存放在一個數(shù)組中,父節(jié)點和孩子節(jié)點的父子關(guān)系通過數(shù)組下標來確定2021-10-10