更新时间:2024-11-13 GMT+08:00
分享

DDD

代码风格 > 工程目录设置为“DDD”时,和“单Module”一样,仅会生成“src”一个模块,如图1所示。

图1 DDD

代码结构说明

代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。

com.astropro
|-- api                                                # API层代码,定义向外部服务暴露的接口(必填项)
    {biz}Api.java                                      # swagger注解
    {biz}Controller.java                               # 输入参数非业务校验
|-- app                                                # 应用层(必填项)
    |-- service                                        # 应用服务层(必填项)
        I{biz}AppService.java                          # 应用服务接口定义(禁止改动)
        |-- impl
            {biz}Service.java                          # 返回值转换为dto
    |-- dto                                            # 数据传输对象,用于接口层返回(必填项)
        {biz}Dto.java                                  # 与BO一一对应
        {customDto}.java                               # 自定义dto(禁止改动)
        |-- converter                                  # bean转换器,用于BO和DTO转换
            {biz}Converter.java                        # 与BO是一一对应关系
    |-- consumer                                       # 消费者(可选项)
        I{biz}Consumer.java
        {biz2}Handler.java
    |-- producer                                       # 生产者(可选项)
        I{biz}Producer.java
    |-- scheduler                                      # 定时任务(可选项)
|-- domain                                             # 领域层,包含基本的业务和业务聚合(必填项)
    |-- service
        I{biz}RepositoryService.java                   # 领域服务接口定义(devspore生成的持久化服务,禁止修改)
        I{biz}GatewayService.java                      # 网关服务接口
        |-- impl
            {biz}DomainService.java                    # 自定义的领域服务实现
    |-- entity                                         # 该聚合下所有的实体、值对象
        {biz}.java
    |-- model                                          # qo、nested、cartesian
    |-- enums                                          # 枚举类
    |-- event                                          # 领域事件实体定义
        {xxx}Event.java
|-- infra                                              # 基础设施层
    |-- repository                                     # 数据操作聚合层,包含基类和继承类(必填项)
        |-- base                                       # 数据操作聚合层基类代码(必填项)
            {biz}BaseRepository.java
        {biz}Repository.java                           # 数据操作聚合层继承类代码,并实现对应的domainService
    |-- mapper                                         # 数据原子操作层。mapper层目录,包含基本接口和继承接口(必填项)
        |-- criteria                                   # mybatis查询对象
        |-- base                                       # mapper层基本接口代码(必填项)
            {biz}BaseMapper.java
        {biz}Mapper.java                               # mapper层继承接口代码。用户可在此类中覆写基本接口中的方法或者增加自定义的方法
    |-- integration                                    # 防腐层,集成第三方服务(跨进程的外部服务),隔离外部系统的影响(可选项)
        GatewayService.java                            # 与领域服务层的I{biz}GatewayService.java一一对应
    |-- mq                                             # mq的具体实现,如kafka、rocketmq
|-- common                                             # 通用包
    |-- config                                         # 配置类(必填项)
    |-- utils                                          # 工具类(必填项)
    |-- exception                                      # 异常类(必填项)
    |-- filter                                         # 过滤器(可选项)
    |-- interceptor

资源目录说明

代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。

resources
|-- mapper                                             # 开源组件mybatis的mapper.xml文件存放目录
    |-- base                                           # 该目录下的文件禁止用户改动
        {biz}BaseMapper.xml
    {biz}Mapper.xml                                    # 只在初次代码生成,用户可在此文件中实现自定义的方法
|-- openapi                                            # swagger.yaml存放目录
        swagger.yaml                                   # swagger.yaml文件
    application.yml                                    # SpringBoot全局配置文件
    banner.txt                                         # 应用程序的banner文件
    log4j2.xml                                         # log4j2日志配置文件
    metadata.json                                      # 元数据配置文件

相关文档