项目工程初始化|学习笔记

简介: 快速学习项目工程初始化

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)项目工程初始化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12406


项目工程初始化


内容介绍

一、工程浏览

二、工程关系图

三、总结


一、工程浏览

1.先在电脑上创建好一些基本的工程,在进行开发时,只需要先把工程加载到 idea 文件夹当中,然后进行编码就可以;

2.重点:了解这些工程分别是什么,以及它们的作用;image.png

(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 也是如此。


二、工程关系图

image.png

根据刚才的分析,逻辑上还是 web 层去调用服务层,那么怎么调用呢?是通过远程 RPC 的方式去调用的,通过接口去调用。服务层所用到的一些技术框架主要包含 RocketMQ,DUBBO,zookeeper,

image.png

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。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
dataframe获取指定列
dataframe获取指定列
1446 0
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
29563 0
|
2月前
|
Arthas 监控 数据可视化
深入理解JVM《JVM监控与性能工具实战 - 系统的诊断工具》
掌握JVM监控与诊断工具是Java性能调优的关键。本文系统介绍jps、jstat、jmap、jstack等命令行工具,以及jconsole、VisualVM、JMC、Arthas、async-profiler等可视化与高级诊断工具,涵盖GC分析、内存泄漏定位、线程死锁检测及CPU热点追踪,助力开发者全面提升线上问题排查能力。(238字)
|
XML 前端开发 数据格式
echarts柱图前后端代码SpringCloud+Vue3
echarts柱图前后端代码SpringCloud+Vue3
233 1
|
Java Maven 微服务
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
2346 0
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
|
JavaScript 数据库 Python
一篇文章搞懂flask_sqlalchemy常用操作
这篇文章介绍了Flask框架中SQLAlchemy库的常用操作,包括查询、删除和更新数据的方法和技巧。
903 3
|
JavaScript 安全 网络安全
Nuxt.js 速成(含使用宝塔实现nuxt项目部署)
Nuxt.js 速成(含使用宝塔实现nuxt项目部署)
1583 0
|
XML JavaScript Java
NekoHTML 是一个基于Java的HTML扫描器和标签补全器
**NekoHTML** 是一个基于Java的HTML扫描器和标签补全器(tag balancer),由J. Andrew Clark开发。它主要用于解析HTML文档,并能够“修正”许多在编写HTML文档过程中常犯的错误,如增补缺失的父元素、自动用结束标签关闭相应的元素,以及处理不匹配的内嵌元素标签等。这使得程序能够以标准的XML接口来访问HTML文档中的信息。 ### NekoHTML的主要特点包括: 1. **错误修正**:能够自动修正HTML中的常见错误,如未闭合的标签等。 2. **DOM树生成**:将HTML源代码转化为DOM(Document Object Model)结构,便
259 1
|
消息中间件 缓存 Java
避免消息积压的终极指南:四个关键技巧
本文作者小米分享了避免消息积压的四个策略:1) 提高消费并行度,可通过增加消费者实例和利用分区机制;2) 批量消费,利用消息中间件的批量API或自定义批量处理逻辑;3) 减少组件IO交互次数,如使用本地缓存和合并IO操作;4) 优先级消费,设置消息优先级并使用优先级队列。通过这些方法,可以优化消息处理效率,防止消息积压,确保关键业务的顺利进行。
279 5
|
开发者 Python
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv‘
【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv‘
1261 0