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),才会生成该模块。
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 # 元数据配置文件