網(wǎng)站首頁 編程語言 正文
SpringCloud之http客戶端Feign
注:這里的案例續(xù)SpringCloud 分布式微服務(wù)架構(gòu)
先回憶一下RestTemplate,我們之前是怎么是用的。
我們初步用它是做遠(yuǎn)程的微服務(wù)的調(diào)用的。
主要的代碼
但是這樣的存在的問題就是代碼的可讀性并不是很
強(qiáng)。而且這樣如果服務(wù)比較多的話,每次都需要將服務(wù)名一個(gè)一個(gè)的配置到url里面,這樣的url也是不好維護(hù)的。
最最最重要的一點(diǎn)啊它不夠優(yōu)雅,我們尋求最優(yōu)雅的方式。那么到底如何做到優(yōu)雅的呢?一步一步來。
按照常規(guī)的方式首先必然是需要導(dǎo)入依賴,我們需要在客戶端微服務(wù)導(dǎo)入這個(gè)依賴。然后整個(gè)feign的操作都在客戶端的這個(gè)模塊中操作。
但是其實(shí)我們可以把FeifnClient抽取為獨(dú)立的模塊,將功能模塊獨(dú)立化的好處就是我們的解耦化更高,當(dāng)然這個(gè)必須要考慮到整體項(xiàng)目環(huán)境的合理性。
抽取的前提是你要明白它在整體的微服務(wù)里面扮演了什么樣的角色。我們用這個(gè)代替了RestTemplate,那么作用實(shí)際上是一個(gè)對(duì)userservice的訪問接口,也就是客戶端對(duì)服務(wù)端的訪問接口。
單獨(dú)抽取出來的作用降低了耦合另外也方便我們將來其他的客戶端去使用到這個(gè)接口。
整體的使用思路劃分
首先我們創(chuàng)建一個(gè)模塊。
首先說明該模塊需要的依賴
feign-api模塊這里我們只需要這樣一個(gè)依賴。
然后我們需要去客戶端引入相關(guān)的依賴。
為什么這里還需要單獨(dú)引入feign-api這個(gè)模塊依賴,因?yàn)槲覀冃枰褂玫剿囊恍〇|西。畢竟是兩個(gè)模塊,我們將一些東西抽離出去,這里沒有引入的話,會(huì)出現(xiàn)問題。
我們看feign-api這個(gè)模塊做了哪些事情。
這個(gè)日志配置可以根據(jù)自己的需要來配置,也可以在配置文件中配置。
下面我們來看客戶端。首先我們?cè)趕ervice中調(diào)用到這個(gè)·接口的東西,因?yàn)槲覀儠?huì)在這里有訪問服務(wù)端接口。這里注入了bean。
當(dāng)然我們還需要在啟動(dòng)類這里配置一下。
還有一點(diǎn),配置文件的配置
具體就是這么多,框架就是這樣,簡(jiǎn)化的同時(shí)也帶來了配置的懵逼。
測(cè)試的人話是沒什么問題的。項(xiàng)目啟動(dòng)的話,一定要加載完畢后測(cè)試。
本來想和springcloud那篇并在一起的,但是感覺文章有點(diǎn)臃腫。就分散開吧。依賴配置的話沒什么技巧,記住用哪些就行了,實(shí)在不行自己做過一次配置就保留好,用的時(shí)候cv大法,或者對(duì)照著,就不要專門因?yàn)橐蕾噷?dǎo)入配置相關(guān)費(fèi)心。
原文鏈接:https://blog.csdn.net/jgdabc/article/details/125724434
相關(guān)推薦
- 2022-03-23 圖形學(xué)之Unity渲染管線流程分析_C#教程
- 2023-06-21 Android崩潰日志收集和保存解析_Android
- 2022-07-22 mybatis一級(jí)緩存和二級(jí)緩存理解與區(qū)別
- 2022-10-14 Linux 安裝指定版本GCC方法
- 2022-07-08 C#四種計(jì)時(shí)器Timer的區(qū)別和用法_C#教程
- 2022-01-17 報(bào)錯(cuò):是否需要更改目標(biāo)庫?請(qǐng)嘗試將lib編譯器選項(xiàng)更改為es2015或更高版本
- 2022-07-27 Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別_python
- 2022-06-18 Android自定義彈框Dialog效果_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支