搭建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所示。