开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):项目工程初始化】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12406
项目工程初始化
内容介绍
一、工程浏览
二、工程关系图
三、总结
一、工程浏览
1.先在电脑上创建好一些基本的工程,在进行开发时,只需要先把工程加载到 idea 文件夹当中,然后进行编码就可以;
2.重点:了解这些工程分别是什么,以及它们的作用;
(1)第一个工程是 shop-api,根据名字我们可以看出它是一个接口;
(2)在 shop-common 当中是一些公共类的工程;
(3)shop-coupon-service 是优惠券微服务的服务提供方;
(4)shop-goods-service 是商品微服务的服务提供方;
(5)shop-order-service 是订单微服务的服务提供方;
(6)shop-order-web 是 web 层,也是一个微服务,并且它可以通过远程 RPC 的方式来调用 order;
(7)shop-parent 是父工程,它对其他的工程进行聚合,管理所有的生命周期。它的里面配置了一些公共的依赖,因此只要子工程继承了父工程,便不需要添加那些公共的依赖;
(8)shop-pay-web 是支付的微服务,也是个 web 层;
在 shop-pojo 中设置的是实体类工程;
(9)shop-user-service 是用户微服务的服务提供方。
3.把这些工程导入到 idea 文件夹当中,然后分析工程的依赖以及模块之间的关系。
(1)把依赖加入到 shop-parent 当中,在这些依赖中,对于 shop-parent 来说,
< parent >
< groupId > org·springframework . boot < / groupId > < artifactId > spring-boot-starter-parent < / artifactId >
< version >2.θ.1.RELEASE< / version >
< / parent >
这段程序编码主要管理一些公共的部分,主要管理一些公共的依赖,所以我们把 spring-boot-starter-parent 放到这段程序编码里,让它去继承。然后如果其他的子工程继承了 shop-parent,就相当于继承了 spring-boot-starter-parent。
shop-parent 里面还添加了很多依赖,
有 dubbo,spring-boot-starter,zookeeper,Test,RocketMQ 和 Lombok。
这些依赖下面聚合了一些其他的子模块。然后设置了一个 target 为1.8的编译的版本。
这便是父工程当中的一个依赖。
(2)因为 shop-api 会用到 shop-pojo 中的实体类,所以 shop-api 需要继承 shop-pojo。
(3)shop-common 当中的依赖可以到时候根据个人需要来添加。
(4)shop-coupon-service 是服务的提供方,因为将来它要操纵数据库,所以它要加入 mybatis 启动器。把 mybitis 的启动依赖添加到这里。
然后 mysql 驱动也需要添加到 shop-coupon-service 里,可以看到 mysql 驱动依赖 shop-api,是因为我们要对 shop-api 接口进行实现。mysql 驱动也依赖 shop-common 工程,来进行公共类的使用。mysql 驱动还依赖 shop-pojo
这便是 shop-coupon-service 的处理。
(5)shop-goods-service,shop-order-service,
shop-user-service, shop-coupon-service,shop-pay-service这几个 service 的依赖都相差不大。
(6)如果某些依赖没有加上,我们可以自己手动配置一下。比如在 shop-user-service 当中,我们可以看到没有加入 pojo,所以我们可以手动加入 pojo。这几个 service 都需要用到 pojo 依赖。shop-pay-service 里没有pojo,因此我们也手动加入 pojo。shop-order-service 和 shop-goods-service 也是如此。
二、工程关系图
根据刚才的分析,逻辑上还是 web 层去调用服务层,那么怎么调用呢?是通过远程 RPC 的方式去调用的,通过接口去调用。服务层所用到的一些技术框架主要包含 RocketMQ,DUBBO,zookeeper,
Spring Boot。服务层在进行数据持久化的过程中会用到储存层中的 MySQL。
三、总结
在项目初始化的这个地方,主要讲了两部分,包括工程浏览(介绍了工程的作用),其中 shop-parent 是父工程,它聚合了其他的子工程,这些工程里 shop-api,shop-common,shop-pojo 是价工程,shop-parent 是 com 工程,shop-goods-service,shop-order-service,
shop-user-service, shop-coupon-service,shop-pay-service,shop-order-web,shop-pay-web都是 web 工程, 并且都是微服务,我们使用 spring boot 去开发这种微服务项目。
然后我们通过工程关系图说明了当前工程之间的依赖关系。web 层包括 shop-order-web 和 shop-pay-web。
shop-order-web 是订单系统的 web 层,shop-pay-web 是支付系统的 web 层,中间通过 api 接口去调用服务提供方,服务提供方一共有5个,分别是优惠券服务、商品服务、订单服务、支付服务和用户服务。然后服务提供方再进行数据的存储。数据查询时会用到 MySQL。