• 9-7 FeignClient参数讲解之Primary


    primary默认就是true。这个就是优先级

    FeignClient会根据注解的配置生成一个接口的实现类,Mybatis也是这样。

    但是还是要去做这个接口的实现,在讲fallBack降级的时候会讲到。那么做了接口的实现就出现一个问题,我们实现了这个接口后,它自己本身又会生成一个,这样Spring就进入一个两难的选择,不知道该选哪个是我的默认实现类,所以这个时候就需要我们的Primay做支持,告诉Spring你应该加载的是哪一个。而之所以他默认是True,就代表我这个接口生成的实现默认的情况下就是最高优先级。其他的都暂时忽略掉。
    但是如果你真的写出来一个相对比较好的实现,比Feign自己写的还好。这种时候就可以自己制定Primary,

    这里我们来做下演示,写一个Provider的实现类,

    用@Service一定要加到Spring的管理里

    实现接口,并重写方法

    重启consumer服务。
    ProviderAPI的primary默认就是True所以优先级别最高。

    假设我们把它的primay设置为false,然后重启服务,,这个时候它就陷入两难的选择了。


    需要一个可用的,但是找到了两个,

    可以在自己的实现类里面加上@Primay的注解

    这里先注解,后续再演示

    接口的primary改为true





    通过动态代理生成接口的实现类,底层就是字节码的编译。

    红色旗子这是最重要的

     

    结束

  • 相关阅读:
    flask——flask-sqlachemy中的一对多,多对多关系
    flask——flask-sqlachemy的使用,模块划分
    Ubuntu下安装JDK和Open Jdk
    flask——全文检索
    Flask——部署
    在Ubuntu上安装Chrome浏览器和ChromeDriver
    jinja2模板语言的循环序号
    CentOS7安装mongodb
    CentOS7安装PhantomJS
    使用screen在后台运行程序
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12845653.html
Copyright © 2020-2023  润新知