使用feign实现声明式的rest调用

2019-05-13  本文已影响0人  寂静的春天1988

pom文件导入feign依赖

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

新建一个接口类

package com.ganlong.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.ganlong.model.meta.TeacherDO;

@FeignClient(value="teacher")
public interface TeacherFeignClient {
    @GetMapping("/queryTeacherId")
    public TeacherDO queryTeacherId(@RequestParam Long id);
}

@FeignClient(value="teacher")value值就是serviceId
接口中的方法就是对应服务提供者的中的controller类方法
启动类

package com.ganlong;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableCircuitBreaker //开启容错保护Hystrix
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class SpringCloudApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudApplication.class, args);
    }
    @LoadBalanced //使用ribbon开启负载均衡
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

加入了一个@EnableFeignClients用于开启feign

上一篇 下一篇

猜你喜欢

热点阅读