搭建Eureka Client商品微服务

 我们搭建好了Eureka Server,本节我们来搭建一个Eureka Client商品(goods)微服务,实现简单的查询商品的功能。

我们使用IDEA创建一个名为goods的Spring Boot项目,如图9-4所示。

 

然后,在“dependencies”界面中勾选“Web”中的“Spring Web”,如图9-5所示;

 

还要勾选“Spring Cloud Discovery”中的“Eureka Discovery Client”,如图9-6所示

 

创建好后,同样地,我们先将配置文件扩展名改成“.yml”。

然后在application.yml中写入配置,如程序清单9-3所示。

 

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

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

service-url.defaultZone表示注册中心地址,和9.2节我们创建的eureka-server中的注册中心地址一样。

 

然后,在项目启动类GoodsApplication上添加@EnableEurekaClient注解开启Eureka Client,如程序清单9-4所示。

 接着,我们创建好图9-7所示的商品微服务结构,来实现简单的商品查询功能。

 Controller表示接口层,用于响应HTTP请求。

 

Entity用于存放实体类,我们创建了一个名为Goods的商品类。

 

service表示服务层,controller通过调用service实现功能。

impl中是服务层的实现。

 然后,我们开始编写具体代码。

先定义Goods实体类,如程序清单9-5所示。

 

 

类上面的3个注解使用的是Lombok注解,需要引入依赖包,具体请参见3.2节。这里我们定义了3个属性,分别是id(商品ID)、name(商品名称)和price(商品价格)。

 

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

 

 

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

 

接着,定义GoodsService接口的实现类GoodsServiceImpl,如程序清单9-7所示。

 

 

 

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

然后,在静态代码块中构造3个商品对象,并将其添加进goodsMap。

接着,实现GoodsService接口中的两个方法,查询所有商品则返回goodsMap保存的所有商品,根据ID查询商品则返回由goodsMap根据key获取的value,即对应ID的商品。

 

最后,定义GoodsController类,如程序清单9-8所示。

 

 

这里定义了两个接口“all”和“one”,分别通过调用GoodsService的实现方法来实现查询商品的功能。

 

然后,我们启动商品微服务,在浏览器中进行测试,如图9-8和图9-9所示。

 

 

posted @ 2022-12-14 09:19  cnetsa  阅读(78)  评论(0编辑  收藏  举报