现代化的领域驱动设计的货物跟踪系统
DDDSample: 现代领域驱动设计的货物跟踪系统
项目概述
技术栈
- Spring Boot 3:作为基础框架,利用其自动配置和依赖注入功能,简化项目开发和部署。
- JPA (Spring Data JPA):用于数据库操作,提供简洁的方式访问和管理数据。
- JMS (Spring ActiveMQ):实现消息队列,支持异步通信和事件驱动架构。
功能特性
策略设计模式
CargoTrackerApplicationProperties
中的 HandlingReportProcessStrategy
可以灵活选择处理策略,提高了系统的灵活性和可配置性。
@Data @ConfigurationProperties(prefix = "cargotracker.application") public class CargoTrackerApplicationProperties { private final HandlingReport handingReport = new HandlingReport(); public enum HandlingReportProcessStrategy { MESSAGE, THREAD, DIRECT } @Data public static class HandlingReport { private HandlingReportProcessStrategy processStrategy = HandlingReportProcessStrategy.DIRECT; } }
BDD 测试
无删除设计
领域层分离
CQRS 分离
架构设计
分层架构与模块化
事件驱动架构
CargoCreatedEvent
、 CargoRoutedEvent
等。通过消息队列和事件监听器,实现了异步处理和系统的可扩展性。 领域建模
清晰的领域模型
Cargo
、 Itinerary
、 Leg
、 Location
等,准确地反映了业务领域的概念和关系。 值对象和实体的区分
TrackingId
是值对象,用于唯一标识货物; Cargo
是实体,具有唯一标识和生命周期。 
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
.Net 权限工作流框架 OpenAuth.Net 多项重大更新
根据 OpenAuth.Net 官网更新日志显示,OpenAuth.Net 7.3发布,其中多项重大更新: 新增API鉴权功能。目前主流的接口平台都提供按角色(或账号)授权访问API的功能,OpenAuth.Net也不例外。在OpenAuth.Net中,接口API被当作资源处理,可以自有分配给用户、角色。 全新的流程设计界面,并且流程增加任意节点撤回审批功能: 🔥.Net 权限管理及快速开发框架、最好用的权限工作流系统。源于 Martin Fowler 企业级应用开发思想及最新技术组合(SqlSugar、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、Vue2/3、Element-ui/plus、IdentityServer 等)。核心模块包括:角色授权、代码生成、智能打印、表单设计、工作流、定时任务等。架构易扩展,是中小企业的首选。
- 下一篇
无鱼 v2.2.0 已经发布,项目工时系统
无鱼 v2.2.0 已经发布,项目工时系统。 更新内容: 修复了项目经理加入人员时,提示querySelect问题。 优化了首页的页面风格。 优化了填报工时\编辑工时\查看工时的页面,以及部分描述。 修复了数据查询界面数据为0时的显示问题。 其他细节优化。 目前主要对新框架的问题修复,下个版本开始进行功能的迭代和增加。 详情查看:https://gitee.com/wy-soft/wyproject/releases/v2.2.0
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker安装Oracle12C,快速搭建Oracle学习环境