SpringCloud中的openFeign調(diào)用服務(wù)并傳參的過程
一、說明
服務(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)文章希望大家以后多多支持腳本之家!
- SpringCloud服務(wù)接口調(diào)用OpenFeign及使用詳解
- SpringCloud?openfeign聲明式服務(wù)調(diào)用實現(xiàn)方法介紹
- SpringCloud Ribbon與OpenFeign詳解如何實現(xiàn)服務(wù)調(diào)用
- SpringCloud?OpenFeign?服務(wù)調(diào)用傳遞?token的場景分析
- SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用
- SpringCloud 服務(wù)負(fù)載均衡和調(diào)用 Ribbon、OpenFeign的方法
- Springcloud基于OpenFeign實現(xiàn)服務(wù)調(diào)用代碼實例
相關(guān)文章
通過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詳解Spring學(xué)習(xí)之編程式事務(wù)管理
本篇文章主要介紹了詳解Spring學(xué)習(xí)之編程式事務(wù)管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07保證緩存和數(shù)據(jù)庫的數(shù)據(jù)一致性詳解
在實際開發(fā)過程中,緩存的使用頻率是非常高的,只要使用緩存和數(shù)據(jù)庫存儲,就難免會出現(xiàn)雙寫時數(shù)據(jù)一致性的問題,本文主要介紹了如何保證緩存和數(shù)據(jù)庫的數(shù)據(jù)一致性,需要的小伙伴可以參考閱讀2023-04-04spring boot 開發(fā)soap webservice的實現(xiàn)代碼
這篇文章主要介紹了spring boot 開發(fā)soap webservice的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作
這篇文章主要介紹了springboot配置多數(shù)據(jù)源并集成Druid和mybatis的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07關(guān)于dubbo的RPC和RESTful性能及對比
這篇文章主要介紹了關(guān)于dubbo的RPC和RESTful性能及對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12