领域驱动设计的项目工程结构
2021-05-24 18:16:08 4 举报
一个典型的领域驱动设计(DDD)的项目工程结构
作者其他创作
大纲/内容
Utils
App层首先通过AOP校验DTO对象参数的合法性,参数不合法则抛出异常。ApplicationService中编排业务流程(注意只有流程,没有逻辑),并统一捕获异常。App层返回给API层的是只包含数据的DTO。
Messager
ExceptionHandler
Open API
LoggerImpl
Logger
Messaging
Annotation
Infra Impl
ErrorCode
AMQP
DTO Validator
AppService/Impl
WebSocket
LogStash
Concurrent
Domian Service
ORM(mybatis/Jpa)
Cache
Common Class
Thread Pool
Logging
Exception
API
MessagerImpl
DTO Constructor
Common层包含了一些项目级的共享代码,如工具类,线程池,错误码和自定义异常等。如果共享代码是跨项目共用的,需要提取出来放到公共组件库。
Infra Interface
Persistence
Google-Guava
Domain
Repository Impl
Hu-Tools
Entity
Kafka
Nosql(mongo/Hbase等)
Logback
Redis
Report Server
Third party Api
Infrastructure
Common
Api层是系统对外提供服务的唯一入口,只做参数接收,没有任何业务逻辑。API层接收到参数后,构造出DTO对象,传给App层的服务接口,把返回的DTO包装到Result中,返回给外部调用方。
Application
对于需要交互的Infra模块,这里只保存/引入interface,不含任何实现,保持对infra的松耦合。传入Infra的数据必须转换成贫血模型的Object,按照数据目的设定后缀,如需要持久化的数据统一命名为XxxPO(Persistence Object)。
Apache-Commons
DTO-Entity-convertor
External
Entity-PO-convertor
Repository
收藏
0 条评论
下一页