@SpringBootApplication
@EnableEurekaClient
@RestController
@EnableFeignClients
public class ServiceConsumerApplication {
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
private AtomicInteger atomicInteger=new AtomicInteger(1);
public static void main(String[] args) throws SQLException {
SpringApplication.run(ServiceConsumerApplication.class, args);
}
package com.feign;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author bwx686385 bianqiang
* @create 2021/1/5
*/
@FeignClient(name = "app-provider")
public interface FeignApi {
//fegin是以springmvc 接口形式书写
//name 就表示服务名称 serviceid
@RequestMapping(value = "/getProvider", method = RequestMethod.GET)
public String getProvider() ;
}
@RestController
public class FeignController {
@Autowired
FeignApi feignApi;
@GetMapping("/feginProvider")
public String feginProvider() {
return feignApi.getProvider();
}
}
1 目前Fegin客户端调用缺点应该重构接口信息(重点) 否则接口就会太冗余
springcloud2.0-parent ---存放共同的依赖信息
springcloud2.0-provider-api --记住 只要是api的只有接口,没有实现,也就是没有方法体,是通过反射去执行方法
springcloud2.0-api-provder
springcloud2.0-api-custormer
springcloud2.0-api-provder-impl -生产者Api接口的实现
springcloud2.0-api-customer-impl -消费者Api接口的实现