工程模块

本文详细介绍了项目中的七大模块,包括start、infrastructure、query、application、domain、share和api模块,阐述了各模块的功能、依赖关系及目录结构,强调了模块间的职责划分,有助于理解项目整体架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工程模块

1. 模块划分

项目共分为7大模块,分别如下:
start: 启动模块
infrastructure:基础设施层
query:查询层
application: 应用层
–**domain:领域层–shared:共享层
api:对外服务接口
**

2. 模块依赖关系

各个模块依赖关系如下,上层模块依赖下层模块,下层模块不可依赖上层模块,否则会造成循环依赖:
image.png

3. 模块介绍

3.1 start模块

start模块是项目顶级模块,直接依赖infrastructure模块。该模块主要包含项目Orm、Redis、Sentinel、全局异常处理等配置以及SpringBoot启动类,最终该模块会被打包成jar或war在tomcat容器中运行。
目录结构如下:
image.png

3.2 infrastructure模块

infrastructure模块是项目中与外围系统(如:数据库、ES、Redis、MQ、Dubbo服务)交互的模块,直接依赖query和application模块。主要包含数据库仓储层的实现、用户UI接口层、外围RPC接口的适配与对外提供RPC接口地实现、MQ消息以及SMS等消息的监听或交互。
目录结构如下:
image.png

3.3 query模块

query模块是项目中负责只读数据的查询以及拼装的模块,不能包含写数据操作。该模块的QryService全部为抽象接口,具体实现交由infrastructure层,调用QryService时,通过Spring依赖倒置注入实现类实例。    
目录结构如下:
image.png

3.4 application模块

application模块是项目中负责包含业务写操作的模块,与query模块是平行关系,application模块直接依赖domain模块。该模块基本不包含业务逻辑,只做一些参数校验、以及简单地调用仓储层进行CRUD、发送领域事件等,包含业务逻辑的操作应该交由domain模块的DomainService。    目录结构如下:
image.png

3.5 domain模块

application模块是项目的精髓,包含各个领域,每个领域对象包含各个实体、值对象、仓储层接口等。领域对象根据其属性可抽象出一些简单的行为,对于复杂的业务操作应该交由DomainService。仓储层接口全部为抽象接口,具体实现交由infrastructure层,调用仓储层接口时,通过Spring依赖倒置注入实现类实例。
目录结构如下:
image.png

3.6 share模块

share模块处于项目依赖关系的下层,主要包含一些工具类、异常、常量、枚举、公共接口等,类似common包的地位。    
目录结构如下:
image.png

3.7 api模块

api模块主要用与其他后端服务做交互,包含接口的定义、接口参数、返回对象、枚举、业务异常等。接口的实现在基础设施层。其作用与基础设施层的controller及其类似,只不过为了给其他服务端调用,必须要打包成jar, 单独构成一个模块。
目录结构如下:
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值