初识SpringCloud以及使用RestTemplate进行服务调用 ---> 服务调用初体验

1、什么是SpringCloud

Spring Cloud 是分布式微服务架构的一站式解决方案,它提供了一套简单易用的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务系统的构建。

Spring Cloud 被称为构建分布式微服务系统的“全家桶”,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来,并通过 Spring Boot 的思想进行再封装,屏蔽调其中复杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud 本身并不是一个拿来即可用的框架,它是一套微服务规范,共有两代实现。

  • Spring Cloud Netflix 是 Spring Cloud 的第一代实现,主要由 EurekaRibbonFeignHystrix 等组件组成。
  • Spring Cloud Alibaba 是 Spring Cloud 的第二代实现,主要由 NacosSentinelSeata 等组件组成。

2、RestTemplate初体验

2.1、创建一个父工程(统一管理依赖版本)

父工程依赖:

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>    
    <modules>
        <module>order</module>
        <module>stock</module>
    </modules>
    <packaging>pom</packaging>
    <groupId>com.lili</groupId>
    <artifactId>springcloud-alibaba</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springcloud-alibaba</name>
    <description>springcloud-alibaba</description>
    <dependencies>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.2、两个字工程

  • order
  • stock

两个子工程工程都加入以下依赖

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

order工程端口号:

server:
  port: 8001

stock工程端口号:

server:
  port: 8002

stock工程controller内容

@RestController
@RequestMapping("/stock")
public class StockController {
    @RequestMapping("/stockList")
    public String getStock(){
        System.out.println("库存");
        return "stock";
    }
}

order工程操作

1、将restTemplate对象加入组件,可直接在启动类上加入以下代码

@Bean
public RestTemplate getRestTemplate(RestTemplateBuilder builder){
    return builder.build();
}

2、编写controller层,并进行调用

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/orderList")
    public String getOrder() {
        System.out.println("订单");
        String message = restTemplate.getForObject("http://localhost:8002/stock/stockList", String.class);
        return "order" + message;
    }

}

3、浏览器运行结果

orderstock
posted @   JamieChyi  阅读(26)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示