@ApiOperation注解,@FeignClient


 

@ApiOperation不是spring自帶的注解,是swagger里的 
com.wordnik.swagger.annotations.ApiOperation;

@ApiOperation和@ApiParam為API生成做的注解,個參數說明如下: 
@ApiOperation(value = “接口說明”, httpMethod = “接口請求方式”, response = “接口返回參數類型”, notes = “接口發布說明”;其他參數可參考源碼; 
@ApiParam(required = “是否必須參數”, name = “參數名稱”, value = “參數具體描述”

詳細請參與如下:

https://blog.csdn.net/fansunion/article/details/51923720

 

@FeignClient

是spring cloud的注解,服務可以使用@FeignClient使用和發現服務場中的其他服務

 

總到來說,Feign的源碼實現的過程如下:

  • 首先通過@EnableFeignCleints注解開啟FeignCleint
  • 根據Feign的規則實現接口,並加@FeignCleint注解
  • 程序啟動后,會進行包掃描,掃描所有的@ FeignCleint的注解的類,並將這些信息注入到ioc容器中。
  • 當接口的方法被調用,通過jdk的代理,來生成具體的RequesTemplate
  • RequesTemplate在生成Request
  • Request交給Client去處理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp
  • 最后Client被封裝到LoadBalanceClient類,這個類結合類Ribbon做到了負載均衡。

詳見下面博客

https://blog.csdn.net/chenqipc/article/details/53322796

 

 

復制代碼
@Retention(RetentionPolicy.RUNTIME)  
@Target({ElementType.TYPE, ElementType.METHOD})  
@Documented  
@Conditional({OnPropertyCondition.class})  
public @interface ConditionalOnProperty {  
    String[] value() default {}; //數組,獲取對應property名稱的值,與name不可同時使用  
  
    String prefix() default "";//property名稱的前綴,可有可無  
  
    String[] name() default {};//數組,property完整名稱或部分名稱(可與prefix組合使用,組成完整的property名稱),與value不可同時使用  
  
    String havingValue() default "";//可與name組合使用,比較獲取到的屬性值與havingValue給定的值是否相同,相同才加載配置  
  
    boolean matchIfMissing() default false;//缺少該property時是否可以加載。如果為true,沒有該property也會正常加載;反之報錯  
  
    boolean relaxedNames() default true;//是否可以松散匹配,至今不知道怎么使用的  
}  
復制代碼

 


免責聲明!

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



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