在服务调用端引入openfeign 依赖启动类开启@EnableFeignClients
服务端代码
@RestController
public class DemoController {
@Value("${server.port}")
private String port;
@GetMapping("/demo")
public String demo(){
return "我是生产者接口返回的内容!端口号:" +port;
}
}
调用端代码
1、pom文件引入依赖
<!-- open feign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、主启动类注解
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
3、Feign接口
@Component
@FeignClient("demo-provider")
public interface FeignService {
@GetMapping("/demo")
String demo();
}
4、调用
@RestController
public class FeignController {
@Resource
private FeignService feignService;
@GetMapping("feignDemo")
public String feignDemo(){
return feignService.demo();
}
}
坑来了,如果上面配置完成后调用出现500错误,如下:
feign.FeignException$NotFound: [404] during [GET] to
一定要检查服务端yml文件配置,是否配置了context-path 路径, 如果配置了要删除,或者在调用端feign接口中增加context-path指定的路径,否则会出现:feign.FeignException$NotFound: [404] during [GET] to
server:
port: 8801
servlet:
context-path: /demo