9-7 FeignClient參數講解之Primary


primary默認就是true。這個就是優先級

FeignClient會根據注解的配置生成一個接口的實現類,Mybatis也是這樣。

但是還是要去做這個接口的實現,在講fallBack降級的時候會講到。那么做了接口的實現就出現一個問題,我們實現了這個接口后,它自己本身又會生成一個,這樣Spring就進入一個兩難的選擇,不知道該選哪個是我的默認實現類,所以這個時候就需要我們的Primay做支持,告訴Spring你應該加載的是哪一個。而之所以他默認是True,就代表我這個接口生成的實現默認的情況下就是最高優先級。其他的都暫時忽略掉。
但是如果你真的寫出來一個相對比較好的實現,比Feign自己寫的還好。這種時候就可以自己制定Primary,

這里我們來做下演示,寫一個Provider的實現類,

用@Service一定要加到Spring的管理里

實現接口,並重寫方法

重啟consumer服務。
ProviderAPI的primary默認就是True所以優先級別最高。

假設我們把它的primay設置為false,然后重啟服務,,這個時候它就陷入兩難的選擇了。


需要一個可用的,但是找到了兩個,

可以在自己的實現類里面加上@Primay的注解

這里先注解,后續再演示

接口的primary改為true





通過動態代理生成接口的實現類,底層就是字節碼的編譯。

紅色旗子這是最重要的

 

結束

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM