Skip to content

项目结构 ​

Art Design Pro X Java 采用 Maven 多模块组织工程:art-admin 启动应用,art-common 提供公共技术能力,art-system 按业务域组织功能。下面保留主要目录和少量关键文件,便于快速建立工程全貌。

第一次阅读先看这几处 ​

  1. 只想启动:看根目录 README.md、config/ 和 scripts/dev.mjs。
  2. 想理解入口:看 art-admin 的 ArtDesignApplication.java。
  3. 想修改业务:在 art-system 找到对应域的 Controller,再追踪 Service 和 Mapper。
  4. 想改表或默认权限:看 art-admin/src/main/resources/db/migration/,新增迁移。

不需要按目录从头读完。下文目录树用于查位置,实际开发从一个具体请求开始更容易理解。

整体工程结构 ​

从 art-design-pro-x-java 根目录打开项目并导入 pom.xml。配套前端独立位于 art-design-pro-x-ui。

text
art-design-pro-x-java/
├── art-admin/               # 应用入口与装配
├── art-common/              # 公共技术模块
│   ├── art-common-core/     # 响应、分页、异常与基础工具
│   ├── art-common-web/      # Web 配置与统一异常处理
│   ├── art-common-mybatis/  # MyBatis-Plus 与分页适配
│   ├── art-common-redis/    # Redis、缓存与环境隔离
│   ├── art-common-oss/      # 本地、MinIO、阿里云 OSS
│   ├── art-common-doc/      # OpenAPI 配置
│   └── art-common-test/     # 公共测试工具
├── art-modules/             # 业务模块目录
│   └── art-system/          # 系统与业务功能
├── config/                  # 客户外置应用 YAML
├── deploy/                  # 客户 Docker 配置
├── scripts/                 # 启动、部署与验证脚本
├── docs/guides/             # 随源码交付的专题说明
├── skills/                  # Java 开发与 AI 协作技能
├── .vscode/                 # 调试与编辑器配置
├── .mvn/wrapper/            # Maven Wrapper
├── docker-compose.yml       # 生产公共 Compose 定义
├── docker-compose.dev.yml   # 开发数据服务定义
├── Dockerfile               # 应用镜像构建
├── pom.xml                  # 模块、依赖版本与构建插件
├── mvnw                     # Linux / macOS Maven 入口
├── mvnw.cmd                 # Windows Maven 入口
├── checkstyle.xml           # 代码规范检查
├── pmd-ruleset.xml          # 静态检查规则
├── AGENTS.md                # 开发约定
├── PRODUCT.md               # 能力与交付边界
└── README.md                # 启动与部署说明

最终由 art-admin 组合应用并产出可执行 JAR。当前业务位于一个 Maven 模块 art-system,内部按领域分包,业务包不分别部署。

启动与配置:art-admin ​

负责应用启动、Spring 装配、安全拦截器和安装配置工具。日常业务规则放在所属业务域。

text
art-admin/
├── src/main/
│   ├── java/com/artd/
│   │   ├── ArtDesignApplication.java  # Spring Boot 启动入口
│   │   └── admin/
│   │       ├── config/                # 安全、调度与运行环境装配
│   │       └── deployment/            # 配置初始化、检查与 Compose 生成
│   └── resources/
│       ├── application.yml            # 公共默认配置
│       ├── application-dev.yml        # 开发环境默认值
│       ├── application-prod.yml       # 生产环境默认值
│       ├── META-INF/                  # 环境处理器与配置元数据
│       └── db/migration/              # Flyway 初始化与升级
├── src/test/                          # 配置、架构与整应用集成测试
└── pom.xml                            # 可执行应用依赖

包内配置随产品发布;客户连接信息与密钥填写根目录 config/application-dev.yml 或 config/application-prod.yml。实际 YAML 不进入 JAR 和镜像,具体加载方式见 应用配置。

公共能力:art-common ​

公共模块供各业务域复用,不反向依赖业务实现。art-common-test 仅用于测试依赖。

模块常用内容
art-common-coreR 统一响应、PageResult 分页、业务异常、日志注解、日期与 ID 工具
art-common-webCORS、全局异常处理、客户端地址解析
art-common-mybatisORM 配置、BaseEntity、公共字段填充、分页结果转换
art-common-redisRedis 序列化、键空间、命名空间缓存与失效
art-common-ossFileStorage 契约及本地、MinIO、阿里云适配
art-common-docSpringDoc / OpenAPI 配置
art-common-test接口契约提取、Mapper XML 测试辅助

需要修改公共能力时,先确认是否影响多个业务域。响应、日期、分页等约定见 接口设计,依赖边界见 系统架构。

业务目录:art-system ​

业务 Java 路径为 art-modules/art-system/src/main/java/com/artd/system/。

text
com/artd/system/
├── access/         # 用户、角色、部门、岗位与授权
├── auth/           # 登录、注册、验证码与刷新会话
├── menu/           # 菜单、按钮与前端路由
├── settings/       # 字典、参数与站点配置
├── files/          # 文件、目录、授权与回收恢复
├── notifications/  # 通知、收件箱与实时推送
├── content/        # 内容、分类、标签与回收站
├── feedback/       # 反馈提交与处理
├── audit/          # 操作日志、登录日志与安全事件
├── monitor/        # 服务器、在线用户与缓存监控
├── tasks/          # 任务定义、调度、执行与日志
├── workflow/       # Flowable 审批、表单、版本与附件
├── mall/           # 商品、库存、订单、支付与售后
├── aiassistant/    # 模型代理与 AI 流式回复
├── crypto/         # 密码加密、公钥与安全配置
└── cache/          # 业务缓存命名与可管理空间

业务包内部如何组织 ​

以 settings 为例,其他业务域按实际需要保留相应目录:

text
settings/
├── controller/  # HTTP 入口、校验与响应包装
├── dto/         # 请求参数与校验规则
├── vo/          # 接口响应模型
├── domain/      # 查询投影与写入模型
├── service/     # 业务用例、事务与模型转换
├── mapper/      # 数据访问接口
├── security/    # 域内权限常量
├── api/         # 供其他业务域调用的公开端口
└── compat/      # 兼容适配

域内调用沿 Controller → Service → Mapper/XML 展开。跨域协作通过 api / spi;有后台任务或框架集成的业务域还会包含 task、config 等目录。普通 CRUD 可使用一个 Service,复杂用例按实际职责拆分。

各域的重点入口和业务边界见 业务模块地图,新增功能步骤见 扩展开发。

数据资源与测试 ​

Mapper XML 与接口按业务域对应,数据库结构与默认数据统一由 Flyway 管理。

text
art-modules/art-system/src/main/resources/
└── mapper/                # 按业务域组织 SQL
    ├── access/            # 账号、组织与授权
    │   └── fragments/     # 共享数据范围 SQL 片段
    ├── settings/          # 字典、参数与站点配置
    ├── files/             # 文件资产与业务引用
    ├── workflow/          # 流程、版本、实例与任务
    ├── mall/              # 商品、库存、订单与支付
    └── ...                # 其他业务域的 Mapper XML

art-admin/src/main/resources/db/migration/
├── V1__init_schema.sql    # 系统底座表结构
├── V2__init_data.sql      # 初始账号、配置与授权
├── V3__init_workflow.sql  # 审批与 Flowable 引擎
├── V4__init_mall.sql      # 商城与交易能力
└── README.md              # 初始化、升级与裁剪约定

不是每个 Mapper 都需要 XML,具体实现也可使用 MyBatis-Plus 或注解 SQL。已发布迁移保持不变,新变更增加更高版本脚本,详见 数据库初始化与升级。

测试位置验证内容
art-common/*/src/test公共技术能力
art-system/src/test/java(业务模块内)业务规则、接口、权限与引擎行为
art-system/src/test/resources(业务模块内)商城、审批接口目录与审计契约
art-admin/src/test/java/com/artd/admin架构边界、装配、配置与部署工具
art-admin/src/test/java/com/artd/integration真实依赖与完整 HTTP 链路
art-admin/src/test/resources/contracts权限目录、数据范围与角色快照

启动、部署与验证脚本 ​

以下脚本位于后端根目录 scripts/:

text
scripts/
├── dev.mjs                     # 构建模块并启动本地 Java
├── deploy.sh                   # 数据服务、生产初始化与更新
├── integration.mjs             # 隔离依赖与 HTTP 集成验证
├── deploy.integration.mjs      # 生产部署方案验收
├── deploy.dev.integration.mjs  # 开发启动方案验收
├── check-identity.mjs          # 账号与认证契约核对
├── check-file.mjs              # 文件契约核对
├── check-workflow.mjs          # 审批契约核对
└── check-mall.mjs              # 商城契约核对

契约核对脚本需要相应参考仓库和 Node 依赖,不属于客户启动 Java 的必要步骤。命令和验证选择见 AI 协作开发。

常见需求对应入口 ​

需求优先查看
登录、刷新、验证码异常auth、crypto 与会话校验
菜单或按钮不显示menu、access 与前端组件映射
修改站点、字典和参数settings
文件访问或存储问题files 与 art-common-oss
修改审批规则workflow 的校验、编译与任务用例
修改库存、订单或支付mall 对应业务 Service、Mapper 与任务
新增后台处理任务tasks/spi 与所属业务域 task
配置模型或排查流式回复aiassistant 与网关配置
连接、端口或部署配置根目录 config、deploy 与 art-admin

阅读一个接口时,从 Controller 和 DTO/VO 开始,再追踪 Service、Mapper/XML 和测试。交给 AI 修改前,先读取 AGENTS.md、PRODUCT.md 与对应主题,明确范围和验收要求。

根据 MIT 许可证发布