欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud遠程服務(wù)調(diào)用實戰(zhàn)筆記

 更新時間:2021年11月24日 14:32:11   作者:CloverYou  
本文給大家介紹SpringCloud遠程服務(wù)調(diào)用實戰(zhàn)筆記,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

筆記

在微服務(wù)中,若想要使用遠程調(diào)用,需要引入spring-cloud-starter-openfeign(在使用注冊中心的環(huán)境下)

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
  <version>xxx</version>
</dependency>

由于open-feign是聲明式的遠程調(diào)用,所以需要編寫一個接口,并且告訴SpringCloud這個接口需要調(diào)用遠程服務(wù)。這個接口我放在公共模塊下的feign中。

package top.ctong.gulimall.common.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import top.ctong.gulimall.common.utils.R;

import java.util.Map;
@FeignClient("gulimall-coupon")
@RequestMapping("/coupon/coupon")
public interface CouponFeignService {

    /**
     * 通過自定義參數(shù)查詢列表
     * @param params 自定義參數(shù)
     * @return R
     * @author Clover You
     * @date 2021/11/17 09:11
     */
    @RequestMapping("/list")
    R list(@RequestParam Map<String, Object> params);
}

@FeignClient("xxx") 該注解用于告訴SpringCloud這是一個遠程調(diào)用接口,其中的value是你在注冊中心中注冊的服務(wù)名。

接口方法簽名需要與被調(diào)用的遠程服務(wù)簽名一致,例如上面哪個代碼要調(diào)用的遠程服務(wù):

package top.ctong.gulimall.coupon.controller;

@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;
    /**
     * 列表
     */
    @RequestMapping("/list")
    //@RequiresPermissions("coupon:coupon:list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = couponService.queryPage(params);
        return R.ok().put("page", page);
    }
}

接著還要使用@EnableFeignClients開啟當前需要使用遠程調(diào)用的這個服務(wù)的遠程調(diào)用,并且指定你的遠程調(diào)用接口在哪個包下。

@EnableFeignClients(basePackages = "top.ctong.gulimall.common.feign")
@EnableDiscoveryClient
@MapperScan("top.ctong.gulimall.member.dao")
@SpringBootApplication
public class GulimallMemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }

} 

@EnableFeignClients 該注解用于開啟當前服務(wù)的遠程調(diào)用功能

basePackages 用于指定遠程調(diào)用接口所在的包,方便服務(wù)啟動的時候可以快速掃描到。他可以接收多個包名,因為它是一個String[]

最后在需要遠程調(diào)用時注入對應(yīng)的遠程調(diào)用接口就好

package top.ctong.gulimall.member.controller;

@RestController
@RequestMapping("member/member")
public class MemberController {

    private final CouponFeignService couponFeignService;

    @Autowired
    public MemberController(CouponFeignService couponFeignService, MemberService memberService) {
        this.couponFeignService = couponFeignService;
        this.memberService = memberService;
    }
  
    @RequestMapping("/testFeignInvoke")
    public R testFeignInvoke() {
        Map<String, Object> parem = new HashMap<>(10);
        return couponFeignService.list(parem);
    }
}

錯誤(nacos)

如果在啟動時出現(xiàn) No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer? 錯誤,那么就是你的SpringCloud版本比較高,在高版本的SpringCloud中已經(jīng)不再使用 spring-cloud-starter-netflix-ribbon 了,而是使用 spring-cloud-starter-loadbalancer 。而nacos還是使用的 spring-cloud-starter-netflix-ribbon。

pom.xml文件中引入 spring-cloud-starter-loadbalancer 再啟動就沒毛病了。

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  <version>3.0.4</version>
</dependency>

在測試遠程調(diào)用中發(fā)生 AbstractMethodError 異常。需要在 pom.xml 中排除 nacos 中引入的 ribbon 。否則 spring-cloud-starter-loadbalancer 無法工作。

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  <exclusions>
    <exclusion>
      <groupId>com.netflix.ribbon</groupId>
      <artifactId>ribbon</artifactId>
    </exclusion>
  </exclusions>
</dependency>

到此這篇關(guān)于SpringCloud遠程服務(wù)調(diào)用 的文章就介紹到這了,更多相關(guān)SpringCloud服務(wù)調(diào)用 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 求解如何把二叉搜索樹轉(zhuǎn)換為累加樹

    Java 求解如何把二叉搜索樹轉(zhuǎn)換為累加樹

    這篇文章主要介紹了Java 求解把二叉搜索樹轉(zhuǎn)換為累加樹的代碼,總之需要觀察示例節(jié)點的規(guī)律,需要記錄上個節(jié)點的情況,注意引入前驅(qū)節(jié)點pre,具體實例代碼跟隨小編一起看看吧
    2021-11-11
  • Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    這篇文章主要介紹了Java實現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法,結(jié)合實力形式分析了質(zhì)因數(shù)分解的原理與實現(xiàn)方法,涉及java數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • java 實現(xiàn)鏈棧存儲的方法

    java 實現(xiàn)鏈棧存儲的方法

    下面小編就為大家?guī)硪黄猨ava 實現(xiàn)鏈棧存儲的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java詳細分析梳理垃圾回收機制

    Java詳細分析梳理垃圾回收機制

    垃圾回收,顧名思義,便是將已經(jīng)分配出去的,但卻不再使用的內(nèi)存回收回來,以便能夠再次分配。在?Java?虛擬機的語境下,垃圾指的是死亡的對象所占據(jù)的堆空間
    2022-04-04
  • 詳解SpringCloud新一代網(wǎng)關(guān)Gateway

    詳解SpringCloud新一代網(wǎng)關(guān)Gateway

    SpringCloud Gateway是Spring Cloud的一個全新項目,Spring 5.0+ Spring Boot 2.0和Project Reactor等技術(shù)開發(fā)的網(wǎng)關(guān),它旨在為微服務(wù)架構(gòu)提供一種簡單有效的統(tǒng)一的API路由管理方式
    2021-06-06
  • Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    Mybatis批量插入,返回主鍵ID不成功,巨坑記錄

    這篇文章主要介紹了Mybatis批量插入,返回主鍵ID不成功,巨坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • IDEA中Javaweb項目圖片加載不出來解決方案

    IDEA中Javaweb項目圖片加載不出來解決方案

    在IDEA中能夠正常的預(yù)覽到圖片,但是在生成項目的war包時,項目的目錄結(jié)構(gòu)卻會發(fā)生變化,所以無法訪問圖片,本文主要介紹了IDEA中Javaweb項目圖片加載不出來解決方案,感興趣的可以了解一下
    2023-10-10
  • java實現(xiàn)模擬RPG格斗

    java實現(xiàn)模擬RPG格斗

    這篇文章主要介紹了java實現(xiàn)模擬RPG格斗,每個英雄具有以下幾個屬性:生命值(為0時英雄倒下)、攻擊力(每次攻擊時扣除對方的生命值點數(shù))、攻擊間隔(每次攻擊過后都要等待間隔時間才能進行下次攻擊首次攻擊之前也要先等待間隔時間)簡單設(shè)置了下吧,小伙伴可以參考下
    2015-03-03
  • dom4j讀取XML文件詳解

    dom4j讀取XML文件詳解

    這篇文章主要為大家詳細介紹了dom4j讀取XML文件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • mybatis-plus實現(xiàn)邏輯刪除的示例代碼

    mybatis-plus實現(xiàn)邏輯刪除的示例代碼

    本文主要介紹了mybatis-plus實現(xiàn)邏輯刪除的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論