• 动态Feign


    https://my.oschina.net/joryqiao/blog/1925633

    1.  FeignClient 中不要写url, 使用 @RequestLine修饰方法

    2. 调用地方必须引入  FeignClientConfiguration, 必须有Decoder, Encoder

    3. 调用类必须以构建函数(Constructor) 的方式注入 FeignClient 类

    4. 传入URL作为参数;

    代码如下:

    FeignClient类:

    @FeignClient(name = "xxxxClient")
    public interface XxxFeignClient {
    
    
        @RequestLine("POST")
        ResponseDto notifySomething(URI baseUri, ApproveNotifyDto notifyDto);
    
        @RequestLine("GET")
        ResponseDto getSomething(URI baseUri, XxxDto xxxDto);
      
    }

    ClientCaller类

    @Slf4j
    @Component
    @Import(FeignClientsConfiguration.class)
    public class CallerService {
    
        private XxxFeignClient xxxFeignClient;
    
        @Autowired
        public CallerService(Decoder decoder, Encoder encoder) {
            xxxFeignClient = Feign.builder()
                    //.client(client)
                    .encoder(encoder)
                    .decoder(decoder)
                    .target(Target.EmptyTarget.create(XxxFeignClient.class));
        }
    
        public ResponseDto notifySomething(String url, XxxxDto dto) throws URISyntaxException {
            return xxxFeignClient.notifySomething(new URI(url), dto);
        }
    
    
        public String test() throws URISyntaxException {
            String url = "http://localhost:9104/";
            return xxxFeignClient.getSomething(new URI(url));
    
        }
    
    
    }

    测试成功. 有点蛋疼.

    参考链接:

    https://stackoverflow.com/questions/43733569/how-can-i-change-the-feign-url-during-the-runtime

  • 相关阅读:
    java处理数据库date类型数据
    in与exist , not in与not exist 的区别
    Eclipse的调试功能的10个小窍门
    关于Synchornized,Lock,AtomicBoolean和volatile的区别介绍
    推荐使用concurrent包中的Atomic类
    深入 Java 调试体系: 第 1 部分,JPDA 体系概览
    dom 绘制正方形
    dom 拖拽div
    dom 按着shift多选
    dom select选单
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/12470395.html
Copyright © 2020-2023  润新知