使用Spring Cloud实战微服务(二)电影售票系统——服务消费者
这篇文章与上一篇文章共存亡,因此,要想运行这个案例,首先需要完成上一个案例:https://blog.csdn.net/qq_39422634/article/details/101173273
这篇文章使用RestTemplate调用用户微服务的API,从而查询指定ID的用户信息,在过程开始之前,先看下案例运行效果。输入URL:
http://127.0.0.1:8010/user/1,页面将显示id为1的用户信息记录。
一,使用Spring Initializr快速创建Spring Boot项目
同上篇文章第一步,此处不在赘述:https://blog.csdn.net/qq_39422634/article/details/101173273
二、完善项目内容
1.完善maven配置文件pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itmuch.cloud</groupId>
<artifactId>microservice-simple-consumer-movie</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<!--引入spring boot依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
<!--引入spring cloud依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--引入Maven插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.创建用户实体类User.java,该类是一个POJO。
public class User {
private Long id;
private String username;
private String name;
private Integer age;
private BigDecimal balance;
...get/setXxx()
}
3.创建Controller—MovieController.java,在其中使用RestTemplate请求用户微服务的API。
@RestController
public class MovieController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/user/{id}")
public User findById(@PathVariable Long id){
return this.restTemplate.getForObject("http://localhost:8000/" + id, User.class);
}
}
4.创建启动类ConsumerMovieApplication.java。
@SpringBootApplication
public class ConsumerMovieApplication {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(ConsumerMovieApplication.class, args);
}
}
5.编写配置文件application.yml。
server:
port: 8010
6.重头戏来了,先运行前一个项目microservice-simple-provider-user,再运行microservice-simple-consumer-movie,在浏览器中输入URL:http://127.0.0.1:8010/user/1,即可访问到数据,赶快试一下吧!