使用SpringCloud搭建微服务<二>---------创建微服务的消费者

来源:互联网 发布:人生有涯而知无涯 编辑:程序博客网 时间:2024/05/17 06:03
上一节(使用SpringCloud搭建微服务<一>),我们创建了服务的提供者,也就是用户微服务,用户微服务提供了一个接口,根据ID获取用户的余额和其他信息。今天我们来创建微服务的消费者---电影微服务。

一、使用Spring Initializr 来快速创建Spring Boot项目

             Spring Initializr 有一下几种使用方法:

                 通过网页使用(http://start.spring.io/)

                 通过Intellig idea 使用。

                 通过Spring Boot CLI使用

我们选择第二种方式创建,我使用的是IDEA的版本是IDEA.2017.2,

选择file-->new Project

选择 Spring Initializr 选择自己需要的SDK,URL选择默认的,点击下一步

填写项目的GroupId和ArtifactId


选择项目需要对应的jar,我们先引入SpringMVC的相关jar

点击NEXT、finish就完成了创建



二、编写服务消费者

pom文件中的内容如下
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mountain.springboot</groupId><artifactId>microservice-consumer-movie-metadata</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>microservice-simple-consumer-movie</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.8.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!--引入spring cloud的依赖--><dependencyManagement><dependencies><dependency><groupId> org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Camden.SR4</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
创建用户实体类,该类是一个pojo
@Entitypublic class User {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private Long id;    @Column    private String name;    @Column    private String username;    @Column    private Integer age;    @Column    private BigDecimal balance;此处省略set/get}

创建启动类的代码
@SpringBootApplicationpublic class MicroserviceSimpleConsumerMovieApplication {@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(MicroserviceSimpleConsumerMovieApplication.class, args);}}

创建Controller,在其中使用RestTemplate请求用户微服务的API

@RestControllerpublic class MoVieController {    @Autowired    private RestTemplate restTemplate;    
    @Value("${user.userServiceUrl}")    private String userServiceUrl;    @GetMapping("/user/{id}")    public User findById(@PathVariable Long id) {        return this.restTemplate.getForObject(userServiceUrl + id, User.class);    }}

编写配置文件application.yml

server:  port: 8010user:  userServiceUrl: http://localhost:8000/

这样一个简单的电影微服务就完成了

访问http://localhost:8010/user/1  结果如下:

注意:用户微服务必须先启动,应为我们是电影微服务调用用户的微服务获取用户信息

{    "id": 1,    "name": "张三",    "username": "account1",    "age": 20,    "balance": 100}