feign实现声明式REST调用
1.pom.xml引入openfeign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.@FeignClient:属于Spring Cloud技术架构体系中的一个注解,其作用是可以让当前服务调用其它应用服务的接口,相比于RestTemplate使用起来更加灵活
@FeignClient(name = "eureka-provider",url = "http://localhost:8080/")
public interface UserFeignClient {
@RequestMapping(value = "/{id}",method = RequestMethod.GET)
User findById(@RequestParam("id") Long id);
// 也可以用RequestLine
// @RequestLine("GET /{id}")
// User findById(@Param("id") Long id);
}
3.Controller中直接提供feign调用消费者服务
@RestController
public class UserContorller {
@Autowired
private UserFeignClient userFeignClient;
@GetMapping("/user/{id}")
public User findById(@PathVariable Long id){
return this.userFeignClient.findById(id);
}
}
3.在启动类中添加@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ConsumerUserApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerUserApplication.class, args);
}
}