SpringBoot項(xiàng)目中feignClient使用方式
SpringBoot項(xiàng)目中feignClient使用
1.在application.yml中加入兩個(gè)配置
# feign client 配置 hystrix: threadpool: default: coreSize: 500 maxQueueSize: -1 queueSizeRejectionThreshold: 10000 command: default: circuitBreaker: requestVolumeThreshold: 1500 execution: #(超時(shí)時(shí)間) timeout: enabled: false #(上下文傳遞) isolation: strategy: SEMAPHORE semaphore: maxConcurrentRequests: 1500 maxSemaphores: 1500 ribbon: ConnectTimeout: 50000000 ReadTimeout: 500000000
2.在主類上加入
scanBasePackageClasses = FeignInterceptor.class, scanBasePackages = {"com.example"}
FeignInterceptor用來掃描 傳遞上下文的攔截器 {"com.example"}用來掃描自己的包 @EnableFeignClients(主類上)掃描被@FeignClient注解的接口 @EnableFeignClients @SpringBootApplication(scanBasePackageClasses = FeignInterceptor.class, scanBasePackages = {"com.example"})
3.將xxxRestContextInterceptor加入到攔截器中
@Configuration public class WebAppConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { //注冊自定義攔截器,添加攔截路徑和排除攔截路徑 registry.addInterceptor(new XsyRestContextInterceptor()); } }
4.接口調(diào)用說明
聲明一個(gè)接口比如:PaasAggFeignClient,在其上顯式加上@FeignClient注解
內(nèi)部填入Eureka上已注冊服務(wù)名稱比如:
@FeignClient("manager-service", configuration = FeignInterceptor.class)
其中configuration = FeignInterceptor.class是要加上的,保證FeignInterceptor生效
自定義方法,請(qǐng)求路徑為該服務(wù)上對(duì)應(yīng)的rest請(qǐng)求路徑,如下
@FeignClient("manager-service") public interface PaasAggFeignClient { @RequestMapping(value = "/api/xxxx/test/description", method = RequestMethod.GET) String testDescription(); @RequestMapping(value = "/api/xxxx/test/{id}", method = RequestMethod.GET) String testInfo(@PathVariable("id") Long id); @RequestMapping(value = "/api/xxxx/test/", method = RequestMethod.POST, consumes = {MediaType.APPLICATION_JSON}) String testCreate(@RequestBody JSONObject jsonObject); @RequestMapping(value = "/api/xxxx/test/{id}", method = RequestMethod.DELETE) String testDelete(@PathVariable("id") Long id); @RequestMapping(value = "/api/xxxx/test/{id}", method = RequestMethod.PATCH, consumes = {MediaType.APPLICATION_JSON}) String testUpdate(@PathVariable("id") Long id, @RequestBody JSONObject jsonObject); }
5.在對(duì)應(yīng)controller內(nèi)引入自定義接口即可使用
@Resource private PaasAggFeignClient paasAggFeignClient; String paasAggResult = paasAggFeignClient.testDescription(); String paasAggResult = paasAggFeignClient.testCreate(entity); String paasAggResult = paasAggFeignClient.testDelete(id); .....
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之單鏈表的實(shí)現(xiàn)與面試題匯總
由于順序表的插入刪除操作需要移動(dòng)大量的元素,影響了運(yùn)行效率,因此引入了線性表的鏈?zhǔn)酱鎯?chǔ)——單鏈表。本文為大家介紹了單鏈表的實(shí)現(xiàn)與面試題匯總,感興趣的可以了解一下2022-10-10基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題
這篇文章主要介紹了基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03詳解JAVA生成將圖片存入數(shù)據(jù)庫的sql語句實(shí)現(xiàn)方法
這篇文章主要介紹了詳解JAVA生成將圖片存入數(shù)據(jù)庫的sql語句實(shí)現(xiàn)方法的相關(guān)資料,這里就是實(shí)現(xiàn)java生成圖片并存入數(shù)據(jù)庫的實(shí)例,需要的朋友可以參考下2017-08-08java 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法
下面小編就為大家?guī)硪黄猨ava 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10java中用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎
這篇文章主要介紹了java用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09JavaWeb ServletConfig作用及原理分析講解
ServletConfig對(duì)象,叫Servlet配置對(duì)象。主要用于加載配置文件的初始化參數(shù)。我們知道一個(gè)Web應(yīng)用里面可以有多個(gè)servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對(duì)象了2022-10-10mybatis 一對(duì)多嵌套查詢的實(shí)現(xiàn)
本文主要介紹了mybatis 一對(duì)多嵌套查詢的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07