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
网友评论