一、在common项目里建一个service(实际项目肯定是多个service)作为Feign客户端,用Feign客户端来调用服务器提供者,当然可以配置负载均衡;Feign客户端定义的目的,就是为了方便给其他项目调用;

二,修改 springcloud-common
pom.xml引入Feign依赖:

<dependency>         <groupId>org.springframework.cloud</groupId>         <artifactId>spring-cloud-starter-feign</artifactId> </dependency>

三.创建FeignClientService服务接口:
FeignClient,同时指定了调用的服务名称PROVIDER

package com.li.springcloud.common.feign; import java.util.List; import java.util.Map; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import com.li.springcloud.common.model.Student; /**  * Feign接口客户端  *   * @author Administrator  *  */  //value对应生产者提的服务名称 @FeignClient(value = "PROVIDER") public interface FeignClientService {     /**      * 查询用户信息      *       * @return      */     @GetMapping(value = "/provider/list")     public List<Student> list(); }

四、新建一个Feign消费者项目springcloud-consumer-feign-1
1.代码都复制springcloud-consumer-1项目一份,包括pom.xml,pom.xml里加下 feign依赖;
2.修改启动类名称,加注解启动类名称改下,改成ConsumerFeignApplication同时加个注解@EnableFeignClients支持下Feign(因为feign客户端是写到common项目中所以扫描的时候要指定扫描包目录:@EnableFeignClients({“com.li.springcloud.common.feign”}));
3.修改springcloud-consumer-feign-1项目中的Contrller类:

package com.li.spingcloud.consumerfeign.controller; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import com.li.springcloud.common.feign.FeignClientService; import com.li.springcloud.common.model.Student; @RestController public class ConsumerController {     @Autowired     private FeignClientService feignClientService;     /**      * 查询数据库      *       * @return      */     @RequestMapping(value = "/consumer/list", produces = "application/json; charset=utf-8", method = {             RequestMethod.POST, RequestMethod.GET })     public List<Student> list() {         System.out.println("调用消费者。。。。。");         return feignClientService.list();     } }

4.用Fiegn,所以把restTemplate去掉,改成注入service,调用service方法来实现服务的调用;
五、测试:
1.先启动Eureka集群或者单机;
2.在启动服务生产者集群或者单机;
3.然后启动springcloud-consumer-feign-1服务消费者;