盲区4:primary属性在@FeignClient注解中有个primary属性,你知道这个属性有什么用吗?
默认每一个feign客户端都被注册为bean , 并且每个bean都相当于使用了@Primary注解修饰一样,任何地方注入都是有限注入的该bean 。它的用处还得从fallback属性说起 。如果定义了feign客户端后对应的fallback是需要实现当前这个feign接口的,且还的注册为bean对象 。那么如果把这里的primary设置为false后,容器中此时可是存在两个DemoFeign类型的bean的,这时候容器启动就会报错了 。所以这里默认就吧feign客户端的primary设置为true就是解决这个问题的 。示例如下:
@FeignClient(url = "http://localhost:8088/demos",name = "demoService",fallback = DemoFeignFallback.classprimary = true // 默认即为true)public interface DemoFeign {}@Componentpublic class DemoFeignFallback implements DemoFeign {}盲区5:动态刷新超时时间盲区1中已经提到了超时时间问题,那都是写静态配置,那能不能动态配置呢?可以,完全可以,你只需下面这样操作即可
#开启刷新配置feign.client.refresh-enabled=true实现的原理也比较简单就是:向容器中注册了一个OptionsFactoryBean类型的bean且该Bean的作用域范围是refresh 。当我们调用/refresh endpoint后就会刷新该Bean的配置信息 。
先就列出上面5个知识点吧,看看你知道几个?
完毕?。。?
推荐阅读
- 解密SpringBoot线程池
- SpringBootCms
- Spring事务超时到底是怎么回事?
- Spring Cloud微服务架构:构建弹性和可伸缩的云原生应用
- Spring 如何解决循环依赖?
- 远程培训工作总结 远程培训学习总结范文
- 三个要点,掌握Spring Boot单元测试
- CORS 跨域资源共享在Spring Boot中的实现
- Java面试题之SpringBoot 框架
- SpringBoot中ApplicationEvent详解
