首页 > 其他分享 >搭建Eureka Client订单微服务

搭建Eureka Client订单微服务

时间:2022-12-14 10:00:12浏览次数:49  
标签:服务 商品 Spring 查询 订单 Client Eureka ID 搭建

在9.3节中我们搭建好了一个商品微服务,本节我们来搭建一个订单(order)微服务,实现简单的查询订单的功能。

 

通常订单只保存商品的ID,而我们在查询订单的时候需要看到商品的详细信息,所以就需要通过调用商品微服务来协助订单微服务实现此项功能。

此时,商品微服务就是服务提供者,而订单微服务则是服务消费者。

 

我们开始创建订单微服务,如图所示,使用IDEA创建一个名为order的Spring Boot项目。

 

 

同样地,在“dependcies”界面中勾选“Web”中的“Spring Web”和“Spring Cloud Discovery”中的“Eureka Discovery Client”。

 

创建好后,同样地,我们先将配置文件扩展名改成“.yml”。然后在application.yml中写入配置,如程序清单9-9所示。

server.port配置服务的端口号为7002,spring.application.name配置服务的名称为order。service-url.defaultZone表示注册中心地址。

 

 

 server.port配置服务的端口号为7002,

spring.application.name配置服务的名称为order。

service-url.defaultZone表示注册中心地址。

 

 

然后,在项目启动类OrderApplication上添加@EnableEurekaClient注解开启Eureka Client。

 

接着,和创建商品微服务一样,我们构建好如图9-11所示的订单微服务结构。

因为订单微服务也需要用到商品类,所以把商品微服务的商品类Goods复制到entity中。

然后,我们开始编写具体代码。先定义Order实体类,如程序清单9-10所示。

 

 

这里我们定义了3个属性,分别是id(订单ID)、goodsId(商品ID)和time(下单时间)。

 

然后,定义OrderService接口,如程序清单9-11所示。

 

 

我们写两个接口方法分别用于查询所有订单和根据ID查询订单。

 

接着,定义OrderService接口的实现类OrderServiceImpl,如程序清单9-12所示。

 

 为了实现查询功能,我们需要假设一些数据。首先,定义一个常量orderMap,用于存储订单集合。

然后,在静态代码块中构造3个订单对象,并将其添加进orderMap。接着,使用RestTemplate调用商品微服务。

 

RestTemplate是由Spring提供的一个HTTP请求工具。

除了RestTemplate,也可以使用Java自带的HttpURLConnection或者经典的网络访问框架HttpClient。

 

在Spring Boot项目中,使用RestTemplate更方便一些。

然后,我们实现OrderService接口中的findAll方法,查询所有订单则返回orderMap保存的所有订单,不过我们还要循环遍历调用findGoodsById方法查询出每个订单的商品信息,然后将其组合成一个集合返回。

最后,实现OrderService接口中的findById方法,首先根据订单ID查询出订单信息,再根据订单信息中的商品ID通过调用findGoodsById方法查询出对应的商品信息,最后将它们组合成一条完整的订单信息返回。

 

 

标签:服务,商品,Spring,查询,订单,Client,Eureka,ID,搭建
From: https://www.cnblogs.com/cnetsa/p/16981318.html

相关文章