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

base/service

工程目录结构

代码风格 > 工程目录设置为“base/service”时,会生成base、service和client(如servicedemo-client)三个模块。其中,client为客户端模块,在AstroPro中添加服务时,开启“是否生成客户端”配置后才会生成。

  • base:AstroPro自动生成出来的,用户不可以修改。但是可以使用AstroPro预置的devspore-codegen-maven-plugin插件,通过修改本地metadata.json元数据,来重新生成base层。使用该插件重新生成base层时,service层不会重新生成。不建议采用上述方式在本地修改metadata.json,容易引入其他未知错误,建议还是在AstroPro前端重新进行编排生成。
    图1 base层
  • service:当base中提供的功能不足满足需求时,可在service模块进行自定义,即对生成的服务代码进行二次开发。
  • client:客户端模块,在AstroPro中添加服务时,开启“是否生成客户端”配置后(如图2),才会生成该模块。
    图2 开启“是否生成客户端”

base代码目录结构

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

com.astropro
|-- controller                                 # API层代码,定义向外部服务暴露的接口(必填项)
    {biz}Api.java
    {biz}Controller.java
|-- service                                    # 承接API直接调用,基本的业务判断逻辑和分发。service层目录,包含接口层(必填项)
    I{biz}Service.java                         # service接口层代码
|-- repository                                 # 数据操作聚合层(必填项)
    Abstract{biz}Repository.java               # 数据操作聚合层代码。
|-- mapper                                     # 数据原子操作层。mapper层目录,包含基本接口(必填项)
    {biz}Mapper.java                           # mapper层接口代码
|-- model                                      # 业务对象层,包含实体类、枚举类、查询对象和mybatis查询条件对象
    {biz}.java                                 # 实体类(可选项)
    {xxx}Enum.java                             # 枚举类(可选项)
    {biz}Qo.java                               # 查询对象(可选项)
    {biz}Criteria.java                         # mybatis查询条件对象(可选项)
|-- dto                                        # 数据传输对象,do组合对象(可选项)
    |-- nested                                 # 根据业务对象的关系自动关联生成,嵌套复杂对象(可选项)
    |-- cartesian                              # 根据业务对象的关系自动关联生成,正交的笛卡尔积对象(可选项)
    |-- {customDto}.java                       # 用户预先定义好的数据传输对象(可选项)
|-- utils                                      # 工具类(必填项)
|-- resources                                  # 资源目录结构
    |-- mapper                                 # 开源组件mybatis的mapper.xml文件存放目录
        {biz}Mapper.xml                        # 该目录下的文件禁止用户改动

base资源目录结构

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

resources                                      # 资源目录结构
|-- mapper                                     # 开源组件mybatis的mapper.xml文件存放目录
    {biz}Mapper.xml                            # 该目录下的文件禁止用户改动

service层代码结构

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

com.astropro
|-- service                                    # 承接API直接调用,基本的业务判断逻辑和分发。service层目录,只包含实现层,用户可自定义实现service层逻辑(必填项)
    {biz}Service.java                          # service实现代码(必填项)
|-- repository                                 # 数据操作聚合层(必填项)
    {biz}Repository.java                       # 数据操作聚合层继承类代码。用户可在此类中覆写基类中的方法或者增加自定义的方法
|-- mapper                                     # 数据原子操作层,mapper层目录(必填项)
    {biz}CustomMapper.java                     # mapper层用户自定义mapper接口代码,用户可在此类中用户可在此类中实现自定义mapper接口
|-- enums                                      # 枚举类(必填项)
|-- config                                     # 配置类(必填项)
|-- utils                                      # 工具类(必填项)
|-- exception                                  # 异常类(必填项)
|-- integration                                # 集成第三方服务,隔离外部系统的影响,起防腐作用(可选项)
|-- event                                      # 事件层(可选项)
    |-- publish                                # 发布事件的Package,存放事件发布的工具类与发布的事件对象,屏蔽技术组件对应用业务的侵入
    |-- subscribe                              # 订阅事件的Package,存放listener与消费的事件对象,listener只做数据的监听与数据格式的转换

service层资源目录结构

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

resources                                      # 资源目录结构
|-- mapper                                     # 开源组件mybatis的mapper.xml文件存放目录
    {biz}CustomMapper.xml                      # 用户可在此文件中实现自定义的方法
|-- openapi                                    # swagger.yaml存放目录
        swagger.yaml                           # swagger.yaml文件
    application.yml                            # SpringBoot全局配置文件
    banner.txt                                 # 应用程序的banner文件
    log4j2.xml                                 # log4j2日志配置文件
    metadata.json                              # 元数据配置文件

相关文档