01、SpringCloud实战:RestTemplate的使用

目录

1、 新建项目springcloud(File--->New--->Project);

使用maven quickstart快速新建Maven项目

输入项目名称和Maven信息

确认Maven目录、配置文件、本地仓库,Finish即可

2、 创建聚合项目springcloud-member、springcloud-order(项目名称自定义,以会员项目、订单项目做演示远程调用);

右键父项目--->New--->Module,剩下步骤和新建父项目同理

两个项目pom文件均引入springboot的web模块

3、 编写springcloud-member配置文件、服务启动类、Controller;

3、 1application.yml;

3、 2服务启动类MemberApp.class;

3、 3MemberController.class;

4、 编写springcloud-order配置文件、服务启动类、Controller;

4、 1application.yml;

4、 2服务启动类OrderApp.class;

4、 3OrderController.class;

5、 使用RestTemplate访问远程接口;

5、 1实例化RestTemplateBean对象;

5、 2注入RestTemplateBean对象;

5、 3通过getForObject方法调用远程接口;

6、 启动两个聚合项目启动类OrderApp、MemberApp;

访问地址:localhost:9071/order/orderInfo

访问地址:localhost:9081/member/getOrderInfo

7、 项目结构;


1、新建项目springcloud(File--->New--->Project)

使用maven quickstart快速新建Maven项目

*

输入项目名称和Maven信息

*

确认Maven目录、配置文件、本地仓库,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.chen</groupId>
    <artifactId>springcloud</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>springcloud-member</module>
        <module>springcloud-order</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <springboot.version>2.2.8.RELEASE</springboot.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

</project>

2、创建聚合项目springcloud-member、springcloud-order(项目名称自定义,以会员项目、订单项目做演示远程调用)

右键父项目--->New--->Module,剩下步骤和新建父项目同理

*

两个项目pom文件均引入springboot的web模块

  <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

3、编写springcloud-member配置文件、服务启动类、Controller

3.1 application.yml

server:
  port: 9081

3.2 服务启动类MemberApp.class

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
public class MemberApp {

    // 手动注入RestTemplate实例
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    public static void main(String[] args) {
        SpringApplication.run(MemberApp.class, args);
    }
}

3.3 MemberController.class

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/member")
public class MemberController {

    //注入RestTemplate
    @Autowired
    private RestTemplate template;

    //RestTemplate访问远程接口
    @GetMapping("/getOrderInfo")
    public String getOrderInfo() {
        return template.getForObject("http://localhost:9071/order/orderInfo", String.class);
    }

 
}

4、编写springcloud-order配置文件、服务启动类、Controller

4.1 application.yml

server:
  port: 9071

4.2 服务启动类OrderApp.class

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class, args);
    }
}

4.3 OrderController.class

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/order")
public class OrderController {

    @GetMapping("/orderInfo")
    public String OrderInfo() {
        return "this is Order Info";
    }

}

5、使用RestTemplate访问远程接口

5.1 实例化RestTemplate Bean对象

 @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

5.2 注入RestTemplate Bean对象

@Autowired
private RestTemplate template;

5.3 通过getForObject方法调用远程接口

template.getForObject(url,class);

Url:远程接口地址

Class:接口返回值类型

如:

template.getForObject("http://localhost:9071/order/orderInfo", String.class);

6、启动两个聚合项目启动类OrderApp、MemberApp

访问地址:localhost:9071/order/orderInfo

*

访问地址:localhost:9081/member/getOrderInfo

*

7、项目结构

*

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: