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

Spring?Cloud?OpenFeign實例介紹使用方法

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

一. OpenFeign概述

OpenFeign 可以將提供者提供的 Restful 服務偽裝為接口進行消費,消費者只需使用“ feign 接口 + 注解 ”的方式即可直接調用提供者提供的 Restful 服務,而無需再使用 RestTemplate 。

注意:

  • Feign 只涉及到消費者端,與提供者端無關
  • Feign 僅僅是一個偽客戶端,其不會對請求做任何處理。即其與使用 RestTemplate 效果 是一樣的
  • Feign 是通過注解實現(xiàn)RESTful 請求的

二. 使用步驟

2.1 feign接口模塊

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

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編寫FeignClient的接口, 并加@FeignCleint 注解

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

import com.example.vo.DepartVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
// 注意,接口名與方法名可以隨意
// 參數(shù)指定了要訪問的提供者微服務名稱
//@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 消費端使用fegin接口

2.2.1在消費者端添加feign接口依賴

2.2.2在消費者端配置文件中添加 feign.client.url

指定服務端的url和端口

2.2.3在消費者端啟動類中添加@EnableFeignClients

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

2.2.4在消費者端使用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 測試

啟動生產(chǎn)者服務,消費者服務

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

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

相關文章

  • 讓Java代碼更高效

    讓Java代碼更高效

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

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

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

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

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

    關于Java大整數(shù)運算之BigInteger類

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

    @JsonFormat處理LocalDateTime失效的問題

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

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

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

    shiro之記住登錄信息

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

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

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

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

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

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

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

最新評論