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

Spring?Cloud?OpenFeign實(shí)例介紹使用方法

 更新時(shí)間:2022年09月10日 11:23:01   作者:C陳三歲  
Spring?Cloud?OpenFeign?對(duì)?Feign?進(jìn)行了二次封裝,使得在?Spring?Cloud?中使用?Feign?的時(shí)候,可以做到使用?HTTP?請(qǐng)求訪問(wèn)遠(yuǎn)程服務(wù),就像調(diào)用本地方法一樣的,開(kāi)發(fā)者完全感知不到這是在調(diào)用遠(yuǎn)程訪問(wèn),更感知不到在訪問(wèn)?HTTP?請(qǐng)求

一. OpenFeign概述

OpenFeign 可以將提供者提供的 Restful 服務(wù)偽裝為接口進(jìn)行消費(fèi),消費(fèi)者只需使用“ feign 接口 + 注解 ”的方式即可直接調(diào)用提供者提供的 Restful 服務(wù),而無(wú)需再使用 RestTemplate 。

注意:

  • Feign 只涉及到消費(fèi)者端,與提供者端無(wú)關(guān)
  • Feign 僅僅是一個(gè)偽客戶端,其不會(huì)對(duì)請(qǐng)求做任何處理。即其與使用 RestTemplate 效果 是一樣的
  • Feign 是通過(guò)注解實(shí)現(xiàn)RESTful 請(qǐng)求的

二. 使用步驟

2.1 feign接口模塊

單獨(dú)將feign接口放在模塊中,方便后續(xù)為各個(gè)服務(wù)使用。

2.1.1依賴配置

springCloud版本使用

<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <!--fegin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

2.1.2編寫(xiě)FeignClient的接口, 并加@FeignCleint 注解

url寫(xiě)死在接口中不方便,可以使用動(dòng)態(tài)參數(shù)配置,只需要在配置文件中添加key為feign.client.url的路徑。這里使用是單體模式,如果分布式項(xiàng)目中配置多個(gè)url管理起來(lái)非常費(fèi)事,就需要升級(jí)使用注冊(cè)中心來(lái)解決。

import com.example.vo.DepartVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
// 注意,接口名與方法名可以隨意
// 參數(shù)指定了要訪問(wèn)的提供者微服務(wù)名稱
//@FeignClient(url ="http://127.0.0.1:8081", value="abcmsc-provider-depart", path = "/provider/depart")
@FeignClient(url ="${feign.client.url}", value="abcmsc-provider-depart", path = "/provider/depart")
public interface DepartService {
    @PostMapping("/save")
    boolean saveDepart(@RequestBody DepartVO depart);
    @DeleteMapping("/del/{id}")
    boolean removeDepartById(@PathVariable("id") int id);
    @PutMapping("/update")
    boolean modifyDepart(@RequestBody DepartVO depart);
    @GetMapping("/get/{id}")
    DepartVO getDepartById(@PathVariable("id") int id);
    @GetMapping("/list")
    List<DepartVO> listAllDeparts();
}

2.2 消費(fèi)端使用fegin接口

2.2.1在消費(fèi)者端添加feign接口依賴

2.2.2在消費(fèi)者端配置文件中添加 feign.client.url

指定服務(wù)端的url和端口

2.2.3在消費(fèi)者端啟動(dòng)類中添加@EnableFeignClients

開(kāi)啟Feign功能:此注解會(huì)掃描啟動(dòng)類所在的包及其子包下面@FeignClient標(biāo)注的接口,將其交給spring容器管理,方便后續(xù)使用。

2.2.4在消費(fèi)者端使用fegin接口

需要在哪里使用接口直接注入后即可使用

import com.example.providerapi.DepartService;
import com.example.vo.DepartVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/consumer/depart")
public class DepartController {
    @Autowired
    private DepartService departService;
    @PostMapping("/save")
    public boolean saveHandle(@RequestBody DepartVO depart) {
 
        return departService.saveDepart(depart);
    }
    @DeleteMapping("/del/{id}")
    public void deleteHandle(@PathVariable("id") int id) {
        departService.removeDepartById(id);
    }
    @PutMapping("/update")
    public void updateHandle(@RequestBody DepartVO depart) {
        departService.modifyDepart(depart);
    }
    @GetMapping("/get/{id}")
    public DepartVO getHandle(@PathVariable("id") int id) {
        return departService.getDepartById(id);
    }
    @GetMapping("/list")
    public List<DepartVO> listHandle() {
        return departService.listAllDeparts();
    }
}

2.3 測(cè)試

啟動(dòng)生產(chǎn)者服務(wù),消費(fèi)者服務(wù)

http://localhost:8080/consumer/depart/save

到此這篇關(guān)于Spring Cloud OpenFeign實(shí)例介紹使用方法的文章就介紹到這了,更多相關(guān)Spring Cloud OpenFeign內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 讓Java代碼更高效

    讓Java代碼更高效

    這篇文章主要介紹了如何讓你的Java代碼更高效,讓Java跑得更快,感興趣的小伙伴們可以參考一下
    2015-09-09
  • SpringMVC使用自定義驗(yàn)證器進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    SpringMVC使用自定義驗(yàn)證器進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    SpringMVC?提供了強(qiáng)大的數(shù)據(jù)驗(yàn)證機(jī)制,可以方便地驗(yàn)證表單提交的數(shù)據(jù),除了自帶的驗(yàn)證器之外,SpringMVC?還支持自定義驗(yàn)證器,允許開(kāi)發(fā)者根據(jù)業(yè)務(wù)需求自定義驗(yàn)證規(guī)則,本文將介紹如何在?SpringMVC?中使用自定義驗(yàn)證器
    2023-07-07
  • Java多線程Atomic包操作原子變量與原子類詳解

    Java多線程Atomic包操作原子變量與原子類詳解

    這篇文章主要介紹了Java多線程Atomic包操作原子變量與原子類詳解,簡(jiǎn)單介紹了Atomic,同時(shí)涉及java.util.concurrent中的原子變量,Atomic類的作用等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 關(guān)于Java大整數(shù)運(yùn)算之BigInteger類

    關(guān)于Java大整數(shù)運(yùn)算之BigInteger類

    這篇文章主要介紹了關(guān)于Java大整數(shù)運(yùn)算之BigInteger類,BigInteger提供高精度整型數(shù)據(jù)類型及相關(guān)操作,所有操作中,都以二進(jìn)制補(bǔ)碼形式表示,需要的朋友可以參考下
    2023-05-05
  • @JsonFormat處理LocalDateTime失效的問(wèn)題

    @JsonFormat處理LocalDateTime失效的問(wèn)題

    這篇文章主要介紹了關(guān)于@JsonFormat處理LocalDateTime失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • SpringBoot整合任務(wù)系統(tǒng)quartz和SpringTask的方法

    SpringBoot整合任務(wù)系統(tǒng)quartz和SpringTask的方法

    這篇文章主要介紹了SpringBoot整合任務(wù)系統(tǒng)(quartz和SpringTask),Quartz是一個(gè)比較成熟了的定時(shí)任務(wù)框架,但是捏,它稍微的有些許繁瑣,本文先給大家講解下Quartz的一些基本概念結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • shiro之記住登錄信息

    shiro之記住登錄信息

    Shiro提供了記住我(RememberMe)的功能,當(dāng)關(guān)閉瀏覽器時(shí)下次再次打開(kāi)還能記住你的信息,下面小編給大家分享shiro之記住登錄信息的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-09-09
  • EDI中JAVA通過(guò)FTP工具實(shí)現(xiàn)文件上傳下載實(shí)例

    EDI中JAVA通過(guò)FTP工具實(shí)現(xiàn)文件上傳下載實(shí)例

    這篇文章主要介紹了EDI中JAVA通過(guò)FTP工具實(shí)現(xiàn)文件上傳下載實(shí)例,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • Selenium Webdriver實(shí)現(xiàn)截圖功能的示例

    Selenium Webdriver實(shí)現(xiàn)截圖功能的示例

    今天小編就為大家分享一篇Selenium Webdriver實(shí)現(xiàn)截圖功能的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Java中MessageDigest來(lái)實(shí)現(xiàn)數(shù)據(jù)加密的方法

    Java中MessageDigest來(lái)實(shí)現(xiàn)數(shù)據(jù)加密的方法

    這篇文章主要介紹了Java中MessageDigest來(lái)實(shí)現(xiàn)數(shù)據(jù)加密的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論