ribbon中如果要调用服务端的接口,需要使用到restTemplate,使用restTemplate提供的api返回多个元素是一个数组了下的。

feign中提供的接口如果要返回集合类型的数据,数据类型和服务端的返回的数据类型一致即可

消费端

UserConstroller.java

Ribbon调用微服务的方法

@ResponseBody
@GetMapping("/list")
public User[] list(){
    //http://spring-cloud-provider/user/list返回List<User>的数据类型
    User[] list = restTemplate.getForObject("http://spring-cloud-provider/user/list", User[].class);
    return list;
}

Feign调用微服务的方法

@ResponseBody
@GetMapping("/feign_list")
public List<User> feign_list(){
    List<User> list = userFeignClient.list();
    return list;
}

UserFeignClient.java

@RequestMapping(value="/user/list",method=RequestMethod.GET)
public List<User>  list();

服务提供端

UserController.java

package com.example.demo.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.model.User;



@RestController
@RequestMapping(value="/user")
public class UserController {
    private Map<String, User> umap = new HashMap();
    public UserController(){
        umap.put("1", new User("1", "xiaoming1", 30));
        umap.put("2", new User("2", "xiaohong1", 20));
        umap.put("3", new User("3", "zhangsan1", 80));
        umap.put("4", new User("4", "lisi1", 10));
        umap.put("5", new User("5", "wangwu1", 22));
    }

    @RequestMapping(value="/get")
    @ResponseBody
    public List<User> list(){
        List<User> list = new ArrayList<User>();
        for(Entry<String, User>e:umap.entrySet()){
            list.add(e.getValue());
        }
        return list;

    }


    @RequestMapping(value="/list")
    @ResponseBody
    public User get(String id){
        return umap.get(id);
    }
}