axzo-framework/archetype-standard
2022-08-15 17:18:33 +08:00
..
src/main/resources 添加依赖 2021-09-14 16:19:41 +08:00
.gitignore init project 2021-04-08 11:38:10 +08:00
pom.xml anxzo-framework pom优化 2022-08-15 17:18:33 +08:00
README.md init project 2021-04-08 11:38:10 +08:00

archetype-standard

公司项目标准骨架

xxx-common

通用模块,包前缀标准为:cn.axzo.xxx.common. 里面可以定义 constants 包用来定义系统中使用到的常量值context 包用来定义系统当中要使用到的上下文enums 包用来定义系统当中使用到的枚举值utils 包用来定义系统当中的工具类等。

因为这个模块都会被其它模块引用,所以这个模块的 pom.xml 依赖的 jar 包必须是公共能用的比如lombokcommon-utils guava,fastjson 等。不应该引用的 jar 比如携程的配置中心 apollo(xxx-client 依赖);远程服务调用 dubbo 或者 feign (xxx-integration 依赖)。

xxx-dal

数据访问模块,包前缀标准为:cn.axzo.xxx.dal. 里面可以定义 mapper 包用来定义服务访问 mapper 接口repository 包用来定义包装 mapper 接口(主要功能是可以代理增强 mapper)entity 包用来定义数据库实体访问对象。domain 包用来定义访问数据库的请求对象等。

因为这个模块的主要功能是访问数据库,所以这个模块的 pom.xml 依赖的 jar 包应该是和数据访问相关的。比如jdbc 驱动mybatis 等

xxx-integration

外部接口集成模块,包前缀标准为:cn.axzo.xxx.integration. 里面可以定义 service 包用来定义 feign 接口,定义 client 接口用来包装 service 包中的接口(代理增强 service:打印日志,异常处理);可以定义 dto 包用来定义远程请求与响应对象。

xxx-client

请求处理模块,包前缀标准为:cn.axzo.xxx.client. 里面可以定义 controller 包用于定义响应前端请求的控制器config 包用于定义整个项目的配置(Redis 配置Xxl Job 配置Spring Web 统一异常配置,数据库配置等)interceptor 包用来定义 spring mvc 中的拦截器等。

xxx-service-api

业务逻辑模块,包前缀标准为:cn.axzo.xxx.service.api. 里面定义的接口直接给 xxx-client 中的 controller 调用,所有的业务逻辑都会被封装到它的实现类当中。业务 Controller 只会调用这个 Service 并不关注具体的业务实现细节。可以定义 request 包用于 service 接口的请求参数,可以定义 response 用于 service 接口的响应参数。

xxx-service

业务逻辑实现模块,是 xxx-service-api 模块定义的接口的实现类接口,包前缀标准为:cn.axzo.xxx.service.impl..它是聚合 xxx-manager 这个通用处理层的,它主要是集成数据库访问以及第三方接口的调用。它的作用是业务逻辑的编排。

xxx-manager-api

通用逻辑模块,包前缀标准为:cn.axzo.xxx.manager.api.,可以是访问数据库的一些逻辑的编排,也可以是定义一些公共的逻辑处理,比如:时间处理 Manager分布式锁 Manager 等

xxx-manager

能用逻辑实现模块:包前缀标准为:cn.axzo.xxx.manager.impl.。它对访问数据库的一些逻辑的编排达到操作的原子性,同时也实现一些公共逻辑处理的一些实现。

xxx-test:

单元测试模块:所有模块的单元测试都可以放在这个模块里。