最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決@RequestMapping和@FeignClient放在同一個接口上遇到的坑

 更新時間:2022年07月04日 09:29:14   作者:AWen_Jack  
這篇文章主要介紹了解決@RequestMapping和@FeignClient放在同一個接口上遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@RequestMapping和@FeignClient放同一個接口的坑

@RequestMapping("/user/admin")
@FeignClient(ServiceNameConstants.USER_ADMIN_SERVICE)
public interface IUserAdminAuthApi {
?? ?...
}

原因

在SpringCloudGateway中,當一個接口上同時擁有@RequestMapping和@FeignClient注解時, 請求會報異常

解決方法

把@RequestMapping放到方法上

FeignClient上的RequestMapping不能生效

問題

我有兩個FeignClient共同繼承了一個接口,兩個Client有各自不同的url實現(xiàn),其中一個需要加上類似于@RequestMapping作用在類上的效果,因為@RequestMapping在FeignClient中作用在方法上是有效的,如果和@Controller一樣放在類上是不是能實現(xiàn)呢,試了一下發(fā)現(xiàn)@RequestMapping與@FeignClient共同作用在一個類上時并不會生效。

原因

通過源碼可得FeignClient注入時通過FeignClientFactoryBean進行Bean的初始化,在其中并沒有對RequestMapping進行處理。

解決過程

小知識1:FeignClient是一個通過HTTP協(xié)議進行請求的RPC框架,而且是使用的RestTemplate進行封裝的,那么其中肯定有對url的封裝。我只需要找到在封裝url時看看能不能加上一段地址就好。

小知識2:在依賴注入時SpringFactory會通過doGetBean()方法去找到對應的Bean信息, 如果該Instance是一個BeanFactory那么會通過Beanfactory.getObject()來獲取對象。那么我只需要進入到FeignClienFactoryBean中查看對應的方法就好了。

那么在源碼中找到了對應的處理代碼如下:

this.url = this.url + this.cleanPath();
private String cleanPath() {
? ? String path = this.path.trim();
? ? if (StringUtils.hasLength(path)) {
? ? ? ? if (!path.startsWith("/")) {
? ? ? ? ? ? path = "/" + path;
? ? ? ? }
? ? ? ? if (path.endsWith("/")) {
? ? ? ? ? ? path = path.substring(0, path.length() - 1);
? ? ? ? }
? ? }
? ? ? ? return path;
}

在上述代碼中可以發(fā)現(xiàn)可以通過設置path屬性來達到我要的效果。

結果

通過設置@FeignClient中的path屬性可以完成我所需的效果。

@FeignClient(name="serviceName", url = "http://localhost:8080", path="value")

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中接口和抽象類的區(qū)別與相同之處

    Java中接口和抽象類的區(qū)別與相同之處

    這篇文章主要介紹了Java中接口和抽象類的區(qū)別與相同之處,本文講解了抽象類的概念、接口的概念、接口和抽象類的區(qū)別與聯(lián)系等內容,需要的朋友可以參考下
    2015-06-06
  • SpringBoot實現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析

    SpringBoot實現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析

    這篇文章主要介紹了SpringBoot實現(xiàn)攔截器、過濾器、監(jiān)聽器過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 關于SpingMVC的<context:component-scan>包掃描踩坑記錄

    關于SpingMVC的<context:component-scan>包掃描踩坑記錄

    這篇文章主要介紹了關于SpingMVC的<context:component-scan>包掃描踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java批量從svn導出多個項目代碼實例

    Java批量從svn導出多個項目代碼實例

    這篇文章主要介紹了java批量從svn導出多個項目代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • maven基礎教程——簡單了解maven的特點與功能

    maven基礎教程——簡單了解maven的特點與功能

    這篇文章主要介紹了Maven基礎教程的相關資料,文中講解非常細致,幫助大家開始學習maven,感興趣的朋友可以了解下
    2020-07-07
  • Spring Boot獲取微信用戶信息的超簡單方法

    Spring Boot獲取微信用戶信息的超簡單方法

    這篇文章主要給大家介紹了關于Spring Boot獲取微信用戶信息的超簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • Spring Cloud Config Client超時及重試示例詳解

    Spring Cloud Config Client超時及重試示例詳解

    這篇文章主要給大家介紹了關于Spring Cloud Config Client超時及重試的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2018-05-05
  • Java設計模式之命令模式(Command模式)介紹

    Java設計模式之命令模式(Command模式)介紹

    這篇文章主要介紹了Java設計模式之命令模式(Command模式)介紹,本文講解了Command模式的定義、如何使用命令模式等內容,需要的朋友可以參考下
    2015-03-03
  • Springboot2.7+Minio8 實現(xiàn)大文件分片上傳

    Springboot2.7+Minio8 實現(xiàn)大文件分片上傳

    本文主要介紹了Springboot2.7+Minio8 實現(xiàn)大文件分片上傳,通過文件切片上傳,我們能夠提高文件上傳的速度,優(yōu)化用戶體驗,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Spring Cloud EureKa Ribbon 服務注冊發(fā)現(xiàn)與調用

    Spring Cloud EureKa Ribbon 服務注冊發(fā)現(xiàn)與調用

    這篇文章主要介紹了Spring Cloud EureKa Ribbon 服務注冊發(fā)現(xiàn)與調用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論

元江| 揭西县| 柯坪县| 防城港市| 南岸区| 海盐县| 荣昌县| 昆明市| 嘉义县| 鄂温| 南宫市| 通河县| 青阳县| 光泽县| 兴国县| 来安县| 金山区| 稷山县| 英超| 濉溪县| 盖州市| 滨海县| 永和县| 府谷县| 武鸣县| 齐河县| 高平市| 巴林右旗| 云林县| 揭西县| 烟台市| 绥化市| 莎车县| 湘阴县| 卢氏县| 云浮市| 右玉县| 小金县| 松江区| 天全县| 平陆县|