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

SpringCloud聲明式Feign客戶端調用工具使用

 更新時間:2023年08月01日 10:11:46   作者:isWulongbo  
這篇文章主要為大家介紹了SpringCloud聲明式Feign客戶端調用工具使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

springcloud 支持兩種客戶端調用工具:

  • RestTemplate,基本上不使用
  • Feign,采用接口加注解方式,可讀性較強

注:本來打算繼續(xù)使用 consul 作為注冊中心來進行 Feign 客戶端調用的,provide 配置如下,無奈一直調用不到 注冊上來的服務名,只好改用 Eureka 來使用,如有知道原因請指教!

##服務端口號
server:
  port: 8501
spring:
  application:
    ##服務別名--服務注冊到consul名稱
 name: consul-member
  ##注冊中心consul地址
 cloud:
    consul:
      host: localhost
      port: 8500
 discovery:
        service-name: ${spring.application.name} # 服務提供名稱
#        ## consul ip地址
#        hostname: 192.168.3.91

Eureka Feign客戶端調用

這里我們基于 SpringCloud整合之Eureka高可用集群 項目來展示。
provide 我們不需要做任何修改,只需要在 consumer order模塊加入以下依賴:

<!--springcloud 整合openfeign-->
<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

feign 調用接口

MemberApiFeign.java: @FeignClient指定provide服務別名,接口copy調用即可:

package com.baba.wlb.api.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * @Author wulongbo
 * @Date 2021/1/21 19:17
 * @Version 1.0
 */
@FeignClient(name = "app-member")
public interface MemberApiFeign {
    // Feign 書寫方式以springMVC接口形式書寫
 // @FeignClient調用服務接口name就是服務名稱
 @RequestMapping("/getMember")
    String getMember();
}

控制頁面

AppFeignController.java: 注入 Feign 接口

package com.baba.wlb.api.controller;
import com.baba.wlb.api.feign.MemberApiFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Author wulongbo
 * @Date 2021/1/21 19:21
 * @Version 1.0
 */
@RestController
public class AppFeignController {
    @Autowired
 private MemberApiFeign memberApiFeign;
 @RequestMapping("/getFeignOrder")
    public String getFeignOrder() {
        return memberApiFeign.getMember();
 }
}

啟動類

AppOrder啟動類:添加 @EnableFeignClients 開啟Feign客戶端權限

package com.baba.wlb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
/**
 * @Author wulongbo
 * @Date 2021/1/9 15:39
 * @Version 1.0
 */@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class AppOrder {
    public static void main(String[] args) {
        SpringApplication.run(AppOrder.class, args);
 // 第二種方式 如果使用rest方式以別名方式進行調用依賴ribbon負載均衡器
 // 第二種方式 @LoadBalanced能讓restTemplate 模板在請求時擁有客戶端負載均衡的能力
 }
    // 解決RestTemplate 找不到原因, 把RestTemplate注冊到Springboot容器中 @Bean
 // 第一種方式
//    @Bean
//    RestTemplate restTemplate(){
//        return new RestTemplate();
//    }
 // 第二種方式 @LoadBalanced能讓restTemplate 模板在請求時擁有客戶端負載均衡的能力
//    @Bean
//    @LoadBalanced
//    RestTemplate restTemplate() {
//        return new RestTemplate();
//    }
 // @EnableFeignClients 開啟Feign客戶端權限
}

注:啟動類位置要放正確

啟動 Eureka Server服務,啟動 member provide 服務,啟動 order consumer 服務后訪問:

http://localhost:8200/getFeignOrder

以上就是SpringCloud聲明式Feign客戶端調用工具使用的詳細內容,更多關于SpringCloud聲明式Feign的資料請關注腳本之家其它相關文章!

相關文章

  • Java并發(fā)之異步的八種實現方式

    Java并發(fā)之異步的八種實現方式

    本文主要介紹了Java并發(fā)之異步的八種實現方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 關于Spring?Data?Jpa?自定義方法實現問題

    關于Spring?Data?Jpa?自定義方法實現問題

    這篇文章主要介紹了關于Spring?Data?Jpa?自定義方法實現問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring的同一個服務會加載多次的問題分析及解決方法

    Spring的同一個服務會加載多次的問題分析及解決方法

    這篇文章主要介紹了Spring的同一個服務為什么會加載多次,我們先來梳理一下?Web?容器中如何加載?Bean,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • SpringBoot訪問MongoDB數據庫的兩種方式

    SpringBoot訪問MongoDB數據庫的兩種方式

    MongoDB是一種非關系型數據庫,通過文檔存儲數據,適用于大規(guī)模數據存儲和高并發(fā)訪問,這篇文章主要介紹了SpringBoot訪問MongoDB數據庫的兩種方式,感興趣想要詳細了解可以參考下文
    2023-05-05
  • Java中如何執(zhí)行多條shell/bat命令

    Java中如何執(zhí)行多條shell/bat命令

    這篇文章主要介紹了Java中如何執(zhí)行多條shell/bat命令的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java中redissonClient 分布式鎖的使用

    java中redissonClient 分布式鎖的使用

    在集群的情況下,用戶多次請求接口時,存入的內容可能會導致重復,這時候就可以使用分布式鎖來限制,本文就來介紹一下java中redissonClient 分布式鎖的使用,感興趣的可以了解一下
    2024-03-03
  • SpringBoot實現支付寶沙箱支付的完整步驟

    SpringBoot實現支付寶沙箱支付的完整步驟

    沙箱支付是一種用于模擬真實支付環(huán)境的測試工具,它提供了一個安全的測試環(huán)境,供開發(fā)者在不影響真實交易的情況下進行支付功能的開發(fā)和測試,這篇文章給大家介紹了SpringBoot實現支付寶沙箱支付的完整步驟,需要的朋友可以參考下
    2024-04-04
  • 使用GSON庫轉換Java對象為JSON對象的進階實例詳解

    使用GSON庫轉換Java對象為JSON對象的進階實例詳解

    這篇文章主要介紹了使用GSON庫轉換Java對象為JSON對象的進階實例詳解,包括注冊TypeAdapter及處理Enum類型等實際運用中可能遇到的一些復雜問題,需要的朋友可以參考下
    2016-06-06
  • Maven項目打包成可執(zhí)行Jar文件步驟解析

    Maven項目打包成可執(zhí)行Jar文件步驟解析

    這篇文章主要介紹了Maven項目如何打包成可執(zhí)行Jar文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java中的BlockingQueue阻塞隊列原理以及實現詳解

    Java中的BlockingQueue阻塞隊列原理以及實現詳解

    這篇文章主要介紹了Java中的BlockingQueue阻塞隊列原理以及實現詳解,在最常見的使用到這個阻塞隊列的地方,就是我們耳熟能詳的線程池里面了,作為我們線程池的一大最大參與者,也是AQS的一個具體實現,需要的朋友可以參考下
    2023-12-12

最新評論