Java中?springcloud.openfeign應用案例解析
OpenFeign是一個顯示聲明式的WebService客戶端。使用OpenFeign能讓編寫Web Service客戶端更加簡單。使用時只需定義服務接口,然后在上面添加注解。OpenFeign也支持可拔插式的編碼和解碼器。spring cloud對feign進行了封裝,使其支持MVC注解和HttpMessageConverts。和eureka(服務注冊中心)和ribbon組合可以實現(xiàn)負載均衡。在Spring Cloud中使用OpenFeign,可以做到使用HTTP請求訪問遠程服務,就像調(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應用案例解析的文章就介紹到這了,更多相關(guān)Java springcloud.openfeign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中Cookie和Session詳解及區(qū)別總結(jié)
這篇文章主要介紹了Java中Cookie和Session詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-06-06
Java多線程--讓主線程等待所有子線程執(zhí)行完畢在執(zhí)行
Java主線程等待所有子線程執(zhí)行完畢在執(zhí)行,其實在我們的工作中經(jīng)常的用到,本篇文章就介紹了Java多線程--讓主線程等待所有子線程執(zhí)行完畢在執(zhí)行,有需要的可以了解一下。2016-11-11
關(guān)于Java8的foreach中使用return/break/continue產(chǎn)生的問題
這篇文章主要介紹了關(guān)于Java8的foreach()中使用return/break/continue產(chǎn)生的問題,在使用foreach()處理集合時不能使用break和continue這兩個方法,也就是說不能按照普通的for循環(huán)遍歷集合時那樣根據(jù)條件來中止遍歷,需要的朋友可以參考下2023-10-10
java不用循環(huán)語句打印數(shù)組元素的實例
下面小編就為大家?guī)硪黄猨ava不用循環(huán)語句打印數(shù)組元素的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解
這篇文章主要介紹了Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
Java接收xml格式參數(shù)轉(zhuǎn)為json的方法
文章主要介紹了如何使用JAXB將XML格式的參數(shù)接收并轉(zhuǎn)換為Java實體類,然后將實體類轉(zhuǎn)換為JSON格式,文中提到在實體類中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何處理復雜的XML結(jié)構(gòu)2024-11-11

