
# 单Module
#### 工程目录结构
"代码风格 \> 工程目录"设置为"单Module"，仅会生成"src"一个模块，如[图1]所示。
图1单Module   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001737390178.png)
#### 代码结构说明
代码结构说明中的"{biz}"，为在AstroPro的[业务设计](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0018.html)中定义的对象，如BO、Abstract BO等。
```
com.astropro
|-- api                                            # API层代码，定义向外部服务暴露的接口（必填项）
    {biz}Api.java
    {biz}Controller.java
|-- service                                        # 承接API直接调用，基本的业务判断逻辑和分发。service层目录，包含接口层和实现层 (必须)
    |-- impl                                       # service实现代码（必填项）
        |-- {biz}Service.java
    I{biz}Service.java                             # service接口层代码。
|-- domain                                         # 领域层，包含基本的业务和业务聚合（必填项）
    {biz}Domain.java
|-- repository                                     # 数据操作聚合层。包含基类和继承类 （必填项）
    |-- base                                       # 数据操作聚合层基类代码（必填项）
        {biz}BaseRepository.java
    {biz}Repository.java                           # 数据操作聚合层继承类代码。用户可在此类中覆写基类中的方法或者增加自定义的方法
|-- mapper                                         # 数据原子操作层。mapper层目录，包含基本接口和继承接口（必填项）
    |-- base                                       # mapper层基本接口代码（必填项）
        {biz}BaseMapper.java
    {biz}Mapper.java                               # mapper层继承接口代码。用户可在此类中覆写基本接口中的方法或者增加自定义的方法
|-- model
    |-- entity                                     # 实体类（必填项）
    |-- enums                                      # 枚举类（可选项）
    |-- qo                                         # 查询对象（可选项）
    |-- criteria                                   # mybatis查询条件对象（可选项）
|-- dto                                            # 数据传输对象，do组合对象（可选项）
    |-- nested                                     # 根据业务对象的关系自动关联生成，嵌套复杂对象（可选项）
    |-- cartesian                                  # 根据业务对象的关系自动关联生成，正交的笛卡尔积对象（可选项）
    |-- {customDto}.java                           # 用户预先定义好的数据传输对象（可选项）
|-- config                                         # 配置类（必填项）
|-- utils                                          # 工具类（必填项）
|-- exception                                      # 异常类（必填项）
|-- integration                                    # 集成第三方服务，隔离外部系统的影响，起防腐作用（可选项）
|-- event                                          # 事件层（可选项）
    |-- publish                                    # 发布事件的Package，存放事件发布的工具类 与 发布的事件对象，屏蔽技术组件对应用业务的侵入
    |-- subscribe                                  # 订阅事件的Package，存放listener与消费的事件对象，listener只做数据的监听与数据格式的转换
```
#### resources目录结构说明
代码结构说明中的"{biz}"，为在AstroPro的[业务设计](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0018.html)中定义的对象，如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                                   # 元数据配置文件
```
