美文网首页
使用feign实现声明式的rest调用

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

作者: 寂静的春天1988 | 来源:发表于2019-05-13 13:42 被阅读0次

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

相关文章

网友评论

      本文标题:使用feign实现声明式的rest调用

      本文链接:https://www.haomeiwen.com/subject/crklaqtx.html