Spring Boot实现微服务开发的电商项目实战(二)

昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现。首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-goods,lyn-order四个西模块。

Spring Boot实现微服务开发的电商项目实战(二)_第1张图片
image

这四个模块将作为Dubbo服务的提供者,里面主要写对应模块的Service接口及实现及Mapper等。把这四个模块作为提供者,那可能大家得问了,消费者是谁呢?这里的消费者就是昨天写的接口服务lyn-web。

Spring Boot实现微服务开发的电商项目实战(二)_第2张图片
image

现在,我们以商品服务模块lyn-goods为例创建并实现提供者。

Spring Boot实现微服务开发的电商项目实战(二)_第3张图片
image

右击“lyn-goods”,选择“New”>>>"Module",进入下面的页面

Spring Boot实现微服务开发的电商项目实战(二)_第4张图片
image

点击“Next”

Spring Boot实现微服务开发的电商项目实战(二)_第5张图片
image

先建一个api依赖的模块goods-api,然后点击“Next”

Spring Boot实现微服务开发的电商项目实战(二)_第6张图片
image

点击“Finish”。再以相同的方式创建goods-service模块。创建完成如下:

Spring Boot实现微服务开发的电商项目实战(二)_第7张图片
image

以上面相同的方式为lyn-sys,lyn-customer,lyn-order三个模块创建服务接口-api和服务实现-service。

二,分环境部署及端口号统一配置

新建一个lyn-commom模块作为放公共资源,并在resoures下添加application.properties。如下图:

Spring Boot实现微服务开发的电商项目实战(二)_第8张图片
image

spring.profiles.active 是配置的SpringBoot的分环境部署;

lyn.***.port 这几个配置是几个要启动的服务的端口号;

统一配置需要在对应模块的resources下创建application-dev.properties和application-pro.properties,并在这两个配置里添加service.port=${lyn..port},然后让此模块依赖lyn-common即可。当服务启动时,首先会找到lyn-common下的application.properties文件,并读取里面的属性,再根据读到的spring.profiles.active值去匹配加载对应本模块下的application-.properties。并将读到的lyn.***.port值赋值给本模块service.port属性。具体模块下的配置以lyn-customer为例。

Spring Boot实现微服务开发的电商项目实战(二)_第9张图片
image

三,Dubbo提供者及消费者配置

1,提供者配置及实现

先在四个提供者模块里的-service下的pom里配置Dubbo依赖,并依赖自己模块里的-api。如图下(其他几个模块依赖相似)

Spring Boot实现微服务开发的电商项目实战(二)_第10张图片
image

添加提供者配置信息。需要注意点:dubbo.applicaiton.name可以以模块命名,dubbo.protocol.port从20880递增,每个提供者的这个值不可重复。

Spring Boot实现微服务开发的电商项目实战(二)_第11张图片
image

然后在这四个提供者的业务接口-api里写service接口服务。并且每个模块下的Service里都写一个相同的方法:test(String name)。

Spring Boot实现微服务开发的电商项目实战(二)_第12张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第13张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第14张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第15张图片
image

然后在对应的每个模块的***-service里写service接口的实现。

Spring Boot实现微服务开发的电商项目实战(二)_第16张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第17张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第18张图片
image
Spring Boot实现微服务开发的电商项目实战(二)_第19张图片
image

再写四个提供者的启动类(其他模块的一样,都在***-service下),注意一定要有@EnableDubbo注解,用来开启Dubbo服务。

Spring Boot实现微服务开发的电商项目实战(二)_第20张图片
image

2,消费者配置及实现

在消费服务lyn-web下的pom里添加Dubbo依赖及提供者的Service接口依赖。

Spring Boot实现微服务开发的电商项目实战(二)_第21张图片
image

添加消费者配置

Spring Boot实现微服务开发的电商项目实战(二)_第22张图片
image

编写消费者启动类:

Spring Boot实现微服务开发的电商项目实战(二)_第23张图片
image

编写测试Controller接口

Spring Boot实现微服务开发的电商项目实战(二)_第24张图片
image

四,测试

启动四个提供者和消费者服务,然后根据Controller下的接口进行测试。

Spring Boot实现微服务开发的电商项目实战(二)_第25张图片
image

打开浏览器访问接口(四个接口各自对应不同的提供者为其提供服务)

image
image
image
image

总结:本期主要讲解了基于SpringBoot实现分布式微服务下的统一配置、分环境部署配置。以及服务端模块的分离(每一个提供者就是一个独立的微服务)、微服务落地、Dubbo提供者及消费者的配置实现。

下期文章:数据库的接入及分布式缓存及消息队列及相关核心业务逻辑的代码实现。

如果你想获取更多的资料或实战知识,请关注公众号,查阅相关文章,或通过公众号发送关键字获取资料,也可通过公众号 “关于我” >>> "联系我" 私聊获取信息或帮助

Spring Boot实现微服务开发的电商项目实战(二)_第26张图片
image

你可能感兴趣的:(Spring Boot实现微服务开发的电商项目实战(二))