@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;//是否可以松散匹配,至今不知道怎么使用的  
}  
复制代码

 

posted on 2018-05-22 22:42  zhufei2007fang  阅读(12302)  评论(0编辑  收藏  举报