亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringCloud中的openFeign調(diào)用服務(wù)并傳參的過程

 更新時間:2023年11月20日 15:06:06   作者:天道酬勤_smile  
服務(wù)和服務(wù)之間通信,不僅僅是調(diào)用,往往在調(diào)用過程中還伴隨著參數(shù)傳遞,接下來重點來看看OpenFeign在調(diào)用服務(wù)時如何傳遞參數(shù),感興趣的朋友一起看看吧

一、說明

服務(wù)和服務(wù)之間通信,不僅僅是調(diào)用,往往在調(diào)用過程中還伴隨著參數(shù)傳遞,接下來重點來看看OpenFeign在調(diào)用服務(wù)時如何傳遞參數(shù)

二、GET方式調(diào)用服務(wù)傳遞參數(shù)

1.GET方式調(diào)用服務(wù)傳遞參數(shù)

在商品服務(wù)中加入需要傳遞參數(shù)的服務(wù)方法來進(jìn)行測試
在用戶服務(wù)中進(jìn)行調(diào)用商品服務(wù)中需要傳遞參數(shù)的服務(wù)方法進(jìn)行測試

// 1.商品服務(wù)中添加如下方法
 @GetMapping("/product/findOne")
public Map<String,Object> findOne(String productId){
  log.info("商品服務(wù)查詢商品信息調(diào)用成功,當(dāng)前服務(wù)端口:[{}]",port);
  log.info("當(dāng)前接收商品信息的id:[{}]",productId);
  Map<String, Object> map = new HashMap<String,Object>();
  map.put("msg","商品服務(wù)查詢商品信息調(diào)用成功,當(dāng)前服務(wù)端口: "+port);
  map.put("status",true);
  map.put("productId",productId);
  return map;
}
//2.用戶服務(wù)中在product客戶端中聲明方法
@FeignClient("PRODUCTS")
public interface ProductClient { 
	@GetMapping("/product/findOne")
 	String findOne(@RequestParam("productId") String productId);
}
//3.用戶服務(wù)中調(diào)用并傳遞參數(shù)
//注入客戶端對象
@Autowired
private ProductClient productClient;
@GetMapping("/user/findAllFeignClient")
public String findAllFeignClient(){
  log.info("通過使用OpenFeign組件調(diào)用商品服務(wù)...");
  String msg = productClient.findAll();
  return msg;
}

三、post方式調(diào)用服務(wù)傳遞參數(shù)

1.post方式調(diào)用服務(wù)傳遞參數(shù)

- 在商品服務(wù)中加入需要傳遞參數(shù)的服務(wù)方法來進(jìn)行測試
- 在用戶服務(wù)中進(jìn)行調(diào)用商品服務(wù)中需要傳遞參數(shù)的服務(wù)方法進(jìn)行測試

//1.商品服務(wù)加入post方式請求并接受name
@PostMapping("/product/save")
public Map<String,Object> save(String name){
  log.info("商品服務(wù)保存商品調(diào)用成功,當(dāng)前服務(wù)端口:[{}]",port);
  log.info("當(dāng)前接收商品名稱:[{}]",name);
  Map<String, Object> map = new HashMap<String,Object>();
  map.put("msg","商品服務(wù)查詢商品信息調(diào)用成功,當(dāng)前服務(wù)端口: "+port);
  map.put("status",true);
  map.put("name",name);
  return map;
}
//2.用戶服務(wù)中在product客戶端中聲明方法
//value屬性用來指定:調(diào)用服務(wù)名稱
@FeignClient("PRODUCTS")
public interface ProductClient {
    @PostMapping("/product/save")
    String save(@RequestParam("name") String name);
}
//3.用戶服務(wù)中調(diào)用并傳遞參數(shù)
@Autowired
private ProductClient productClient;
@GetMapping("/user/save")
public String save(String productName){
  log.info("接收到的商品信息名稱:[{}]",productName);
  String save = productClient.save(productName);
  log.info("調(diào)用成功返回結(jié)果: "+save);
  return save;
}

2.傳遞對象類型參數(shù)

- 商品服務(wù)定義對象
- 商品服務(wù)定義對象接收方法
- 用戶服務(wù)調(diào)用商品服務(wù)定義對象參數(shù)方法進(jìn)行參數(shù)傳遞

//1.商品服務(wù)定義對象
@Data
public class Product {
    private Integer id;
    private String name;
    private Date bir;
}
//2.商品服務(wù)定義接收對象的方法
@PostMapping("/product/saveProduct")
public Map<String,Object> saveProduct(@RequestBody Product product){
  log.info("商品服務(wù)保存商品信息調(diào)用成功,當(dāng)前服務(wù)端口:[{}]",port);
  log.info("當(dāng)前接收商品名稱:[{}]",product);
  Map<String, Object> map = new HashMap<String,Object>();
  map.put("msg","商品服務(wù)查詢商品信息調(diào)用成功,當(dāng)前服務(wù)端口: "+port);
  map.put("status",true);
  map.put("product",product);
  return map;
}
//3.將商品對象復(fù)制到用戶服務(wù)中
//4.用戶服務(wù)中在product客戶端中聲明方法
@FeignClient("PRODUCTS")
public interface ProductClient {
  @PostMapping("/product/saveProduct")
  String saveProduct(@RequestBody Product product);
}
// 4.在用戶服務(wù)中調(diào)用保存商品信息服務(wù)
//注入客戶端對象
@Autowired
private ProductClient productClient;
@GetMapping("/user/saveProduct")
public String saveProduct(Product product){
  log.info("接收到的商品信息:[{}]",product);
  String save = productClient.saveProduct(product);
  log.info("調(diào)用成功返回結(jié)果: "+save);
  return save;
}

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

相關(guān)文章

  • 通過prometheus監(jiān)控springboot程序運(yùn)行狀態(tài)的操作流程

    通過prometheus監(jiān)控springboot程序運(yùn)行狀態(tài)的操作流程

    jmx_exporter用于從Java應(yīng)用程序中提取JMX指標(biāo),適用于SpringBoot應(yīng)用,通過下載jar包和配置文件,可以抓取JVM基礎(chǔ)指標(biāo),要獲取應(yīng)用級別指標(biāo),需要集成Prometheus客戶端庫并自定義指標(biāo),本文給大家介紹了如何通過prometheus監(jiān)控springboot程序運(yùn)行狀態(tài)
    2025-02-02
  • 深入Java分布式計算的使用分析

    深入Java分布式計算的使用分析

    本篇文章對Java分布式計算的使用進(jìn)行了詳細(xì)的介紹。需要的朋友參考下
    2013-05-05
  • 淺析Java單例設(shè)計模式(自寫demo)

    淺析Java單例設(shè)計模式(自寫demo)

    Java單例模式是看起來以及用起來簡單的一種設(shè)計模式,但是就實現(xiàn)方式以及原理來說,也并不淺顯,下面這篇文章主要給大家詳細(xì)介紹了Java中單例模式,需要的朋友可以參考下
    2021-12-12
  • 一篇文章帶你搞定JAVA Maven

    一篇文章帶你搞定JAVA Maven

    Maven是每個Java程序都會遇到的包管理工具,今天整理一下Maven的相關(guān)知識,從青銅到王者,一文全了解,我們開始吧,希望對你有所幫助
    2021-07-07
  • 詳解Spring學(xué)習(xí)之編程式事務(wù)管理

    詳解Spring學(xué)習(xí)之編程式事務(wù)管理

    本篇文章主要介紹了詳解Spring學(xué)習(xí)之編程式事務(wù)管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 保證緩存和數(shù)據(jù)庫的數(shù)據(jù)一致性詳解

    保證緩存和數(shù)據(jù)庫的數(shù)據(jù)一致性詳解

    在實際開發(fā)過程中,緩存的使用頻率是非常高的,只要使用緩存和數(shù)據(jù)庫存儲,就難免會出現(xiàn)雙寫時數(shù)據(jù)一致性的問題,本文主要介紹了如何保證緩存和數(shù)據(jù)庫的數(shù)據(jù)一致性,需要的小伙伴可以參考閱讀
    2023-04-04
  • 分布式Netty源碼分析EventLoopGroup及介紹

    分布式Netty源碼分析EventLoopGroup及介紹

    這篇文章主要介紹了分布式Netty源碼分析EventLoopGroup及介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • spring boot 開發(fā)soap webservice的實現(xiàn)代碼

    spring boot 開發(fā)soap webservice的實現(xiàn)代碼

    這篇文章主要介紹了spring boot 開發(fā)soap webservice的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作

    springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作

    這篇文章主要介紹了springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 關(guān)于dubbo的RPC和RESTful性能及對比

    關(guān)于dubbo的RPC和RESTful性能及對比

    這篇文章主要介紹了關(guān)于dubbo的RPC和RESTful性能及對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論