DDD系列 - 第6讲 仓库Repository - Mybatis篇

本文详细讲解了如何在DDD模式下,通过Mybatis在领域层定义仓库接口和在基础设施层实现接口,包括设计数据库、集成Mybatis、引入Converter以及实现仓库的过程。文章以商品聚合为例,探讨了领域模型与数据库模型之间的转换和ORM映射,强调了DDD的两段式设计在实际开发中的复杂性和权衡。

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

一、领域层定义仓库接口

书接上回,之前通过一个关于拆解、微服务、面向对象的故事,向大家介绍了如何从微服务、面向对象一步步演进到DDD的,整个演进过程如下图:
在这里插入图片描述

其中在领域层,我们定义了富血模型的领域模型,包括聚合、聚合根、实体、值对象等。聚合在代码层面中的表现形式即是一个包Package,起到了边界的作用,聚合内的对象间高内聚,而聚合间低耦合。聚合中放着实体、值对象、仓库等,实体相较于值对象的一个典型区别就是实体存在唯一标识,并且可通过该唯一标识查询到该实体并对其进行相关操作,值对象不存在唯一标识且通常作为实体的伴生属性,但二者均采用信息专家模式即包含丰富的业务操作(而不是贫血模型仅包含getter/setter)。在聚合中选择一个实体作为聚合根(入口类),对该聚合的访问均通过聚合根发起。在DDD中规定,一个聚合对应一个仓库Repository,即由聚合内的仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗小爬EX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值