SpringCloud-OpenFeign 源码

用户头像
云淡风轻
关注
发布于: 2020 年 06 月 03 日

Feign 是一个伪 Java Http 客户端 , Feign 不做任何的请求处理。 Feign 通过处理注解生成Request 模板,从而简化了 Http API 的开发。开发人员可以使用注解的方式定制 Request API模板。



Spring启动时,注册@FeignClient:

当程序 的启动类上有@EnableFeignClients 注解。在程序启动后 , 程序会通过包扫描将有@FeignClient注解修饰的接口连同接口名和注解的信息一起取出 ,赋给 BeanDefinitionBuilder,然后根据BeanDefinitionBuilder 得到 BeanDefinition, 最后将 BeanDefinition 注入 IoC 容器中 。

注入 BeanDefinition 之后,通过 JDK 的代理,当调用 Feign Client 接口 里面的方法时 , 该方法会被拦截,源码在 ReflectiveFeign类

在 SynchronousMethodHandler类进行拦截处理,会根据参数生成 RequestTemplate对象,该对象是 H即 请求的模板



用户头像

云淡风轻

关注

云淡风轻 2018.08.18 加入

JAVA软件工程师

评论

发布
暂无评论
SpringCloud-OpenFeign源码