feign组件工作原理
程序启动时,检查是或否有@EnableFeignClient注解,如果有这个注解,就开启包扫描,扫描被@FeignClient注解的接口。找到这样接口之后会把接口名和注解信息一块取出来,,赋值给BeanDefinitionBuilder,然后根据BeanDefinitionBuilder得到BeanDefinition然后把BeanDefinition注入到IOC容器当中。...
·
feign可以用来远程调用其他服务。
程序启动时,检查是或否有@EnableFeignClient注解,如果有这个注解,就开启包扫描,扫描被@FeignClient注解的接口。找到这样接口之后会把接口名和注解信息一块取出来,赋值给BeanDefinitionBuilder,然后根据BeanDefinitionBuilder得到BeanDefinition然后把BeanDefinition注入到IOC容器当中。
注入BeanDefinition之后,通过JDK的代理,如果调用Feign Client接口里面的方法,这个方法会被拦截,然后在SynchronousMethodHandler类当中进行拦截处理,根据RequestTemplate生成Request请求对象,然后通过HTTP client进行HTTP请求获取response。
更多推荐
已为社区贡献1条内容
所有评论(0)