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 導(dǎo)入依賴
<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)依賴問題,文中有詳細的代碼示例,對大家的學(xué)習(xí)活工作有一定的幫助,具有一定的參考價值,需要的朋友可以參考下2023-10-10
SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn)
本文主要介紹了SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Java INPUTSTREAM如何實現(xiàn)重復(fù)使用
這篇文章主要介紹了Java INPUTSTREAM如何實現(xiàn)重復(fù)使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的
這篇文章主要介紹了java 進程是如何在Linux服務(wù)器上進行內(nèi)存分配的,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11
Java?Api實現(xiàn)Elasticsearch的滾動查詢功能
這篇文章主要介紹了Java?Api實現(xiàn)Elasticsearch的滾動查詢,解決ES每次只能查詢一萬條數(shù)據(jù)的問題,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-08-08
Java 數(shù)據(jù)結(jié)構(gòu)之堆的概念與應(yīng)用
堆是一顆完全二叉樹,在這棵樹中,所有父節(jié)點都滿足大于等于其子節(jié)點的堆叫大根堆,所有父節(jié)點都滿足小于等于其子節(jié)點的堆叫小根堆,堆雖然是一顆樹,但是通常存放在一個數(shù)組中,父節(jié)點和孩子節(jié)點的父子關(guān)系通過數(shù)組下標(biāo)來確定2021-10-10

