仓储管理平台
开发要求
解耦!解耦!解耦!重要的事情说三遍
每个模块应该只暴露给其他模块client层,不暴露web层和service层
wmp-framework模块:
- 作为框架统一依赖,要确保当前模块下的所有内容必须是每个模块都需要依赖的
- 提供业务通用工具类、必须依赖的配置类,非必须不允许写在framework
web模块:
- controller包提供对外接口,rpc包提供feign接口
- rpc交互只能使用DTO对象
service模块:
- 持久层交互
- 业务逻辑
- 当前模块下的专用工具类
- 当前模块需要使用的配置类
client模块:
- 维护model模块下对象,BO包下对象用于当前模块业务使用
- 提供对外feign的抽象接口
- 提供feign调用的DTO不允许继承任何对象
- 不允许提供util工具类,复用轮子需放在wmp-framework模块下
项目架构(持续更新)
warehouse-management-platform 实业仓储管理平台
- 8089 wmp-gateway 网关-用于统一对外提供顶级域名
- wmp-framework 框架-用于提供公共的工具类和基础服务
- 8092 wmp-order 订单模块
- wmp-order-web
- wmp-order-service
- wmp-order-client
- 8095 wmp-stock 库存模块
- wmp-stock-web
- wmp-stock-service
- wmp-stock-client
- 8091 wmp-task 任务模块
- wmp-task-web
- wmp-task-service
- wmp-task-client
- 8093 wmp-baseData 基础数据模块
- wmp-baseData-web
- wmp-baseData-service
- wmp-baseData-client
- 8094 wmp-bigData 大数据模块
- wmp-bigData-web
- wmp-bigData-service
- wmp-bigData-client
- 8096 wmp-open 对外模块
- wmp-open-web
- wmp-open-service
- wmp-open-client
- wmp-demo 示例模块
- (网络层)wmp-demo-web
- (服务层)wmp-demo-service
- (客户端)wmp-demo-client
DTO、BO、PO、VO、REQ、ENTITY规范
- DTO (Data Transfer Object) 数据传输对象: DTO设计模式用于将数据从服务端传输到客户端,或者在不同的服务之间传递。通常,DTO包含了特定业务场景需要的数据结构,并且不包含任何业务逻辑。它简化了不同服务或模块之间的交互,使得各个层之间的耦合度降低。
- BO (Business Object) 业务对象: BO代表了业务逻辑层中的对象,封装了与某个业务相关的数据以及针对这些数据的操作逻辑。一个BO可能由多个实体属性组成,并处理涉及多个实体的复杂业务逻辑。
- PO (Persistent Object) 持久化对象: PO主要用来表示数据库表的一条记录,它的属性和数据库表的字段相对应。通常在持久层(如Hibernate、JPA等ORM框架)中使用,主要用于操作数据库,如保存、更新和查询数据。
- VO (Value Object) 值对象: VO是视图层的对象,通常用于封装展示给用户的数据,它可以和数据库表对应,也可以根据UI界面需求进行定制。VO的主要目的是在页面展示时只携带必要的数据,从而避免把大量不必要的数据暴露给前端。
- Req (Request Body) 接收请求参数: Req主要用于接收前端传递的请求参数,通常用于接口的入参。Req对象的属性通常和前端传递的参数一一对应,用于接收前端传递的数据。
- Entity 实体对象: Entity是领域模型中的对象,它代表了领域模型中的一个实体,通常是一个具体的业务对象。Entity对象通常包含了业务逻辑,用于描述业务对象的属性和行为。
-