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);
    }
  • 相关阅读:
    php 参数 注释
    Ubuntu11.04下Memcached和php5memcache的安装与基本使用
    在php中使用UNIX System V IPC机制共享应用程序数据
    zend studio 使用SVN配置工具
    php 参数 注释
    zend studio 使用SVN配置工具
    IBM Tivoli Monitoring Manager
    my security / csdn / 2000w / chakaifang.info
    my phone blackberry priv / blackberry keyone / heimei
    OS + Unix FreeBSD / MacOSX Snow Leopard 10.6.38 / MacBook Pro / apple / MC373
  • 原文地址:https://www.cnblogs.com/honghong75042/p/13353299.html
Copyright © 2011-2022 走看看