zoukankan      html  css  js  c++  java
  • spring cloud 方法调用 feign

    1、原始方法template调用

    package com.hh;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    @SpringBootApplication
    public class ConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class, args);
        }
    
        @Bean
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }
    package com.hh.controller;
    
    import com.hh.pojo.User;
    import com.netflix.hystrix.contrib.javanica.annotation.DefaultProperties;
    import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.cloud.client.discovery.DiscoveryClient;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    @RestController
    @RequestMapping("/consumer")
    @Slf4j
    @DefaultProperties(defaultFallback = "defaultFallback")
    public class ConsumerController {
    
        @Autowired
        private RestTemplate restTemplate;
    
    
        @GetMapping("/{id}")
        public User queryById(@PathVariable Long id){
    
            String url = "http://localhost:9091/user/" + id;
            return restTemplate.getForObject(url, User.class);
        }
    
    
    }

    注意点:数据类型一定要一致,不然会报错

    java.lang.IllegalStateException: PathVariable annotation was empty on param 0.

    package com.hh.feign;
    
    
    import com.hh.pojo.User;
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.annotation.Resource;
    
    //声明当前类是一个Feign客户端,指定服务名为user-service
    @FeignClient(value="user-service")
    @Resource
    public interface UserClient {
    
        //http://user-service/user/123
        @GetMapping("/user/{id}")
        User queryById(@PathVariable("id") Long id);
    }
  • 相关阅读:
    初步了解Spark生态系统及Spark Streaming
    VS2010 项目引用了微软企业库,但是编译时提示:未能找到类型或命名空间名称
    Apache MPM winnt
    华为 HG8245C 光猫 修改无线用户数限制+hw_ctree.xml 文件解密
    将j-ui(dwz)套用到thinkphp注意事项
    Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决
    wampserver 安装后 启动失败的解决方法
    东进语音卡的声音文件格式
    mysql insert into select 语法
    糗百新鲜事——爬虫python
  • 原文地址:https://www.cnblogs.com/honghong75042/p/13353299.html
Copyright © 2011-2022 走看看