上一篇文章编写了一个服务提供者,本篇来编写一个服务消费者,该服务非常简单,只是调用上篇的服务提供者的获取用户接口。
1.同前面文章,创建consumer 服务的model,并且创建相应的.gradle文件添加依赖
project(':maoj-eureka-consumer'){
dependencies {
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
}
}
2.创建用户实体类,这个类只是一个POJO
public class User {
private Long id;
private String username;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.将启动类更改为如下形式,添加RestTemplate
@SpringBootApplication
@EnableEurekaClient
public class MaojEurekaConsumerApplication {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(MaojEurekaConsumerApplication.class, args);
}
}
4.创建Controller,在其中用使用RestTemplate请求用户微服务的API
@RestController
public class UserController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/consumer/users/{id}")
public User findUser(@PathVariable Long id){
return this.restTemplate.getForObject("http://localhost:8000/users/" + id, User.class);
}
}
5.编写配置文件,将服务注册到eureka server上
server:
port: 8010
spring:
application:
name: maoj-eureka-consumer
eureka:
client:
service-url:
default-zone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
6.启动前面的三个项目eureka server,provider,consumer。访问 localhost:8761可以看到两个服务都已经注册在注册中心中,访问http://localhost:8010/consumer/users/1可以调用user provider的服务的用户信息。