ClawForge java-cola-skill

Java COLA 架构指南 - 阿里巴巴 COLA 整洁分层架构框架。用于 Java/Spring Boot 项目的 DDD 分层架构设计、代码结构规范、应用架构重构。触发条件:COLA、Java DDD、Spring Boot 架构、分层架构、整洁架构、六边形架构、洋葱圈架构、代码分层、模块划分、Gateway 模式、Repository 模式、CQRS、架构重构、职责分离、Maven 多模块。创建 Java 文件时自动应用 COLA 目录结构和命名规范。

install
source · Clone the upstream repo
git clone https://github.com/jackjin1997/ClawForge
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jackjin1997/ClawForge "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cola-ddd/java-cola-skill" ~/.claude/skills/jackjin1997-clawforge-java-cola-skill && rm -rf "$T"
manifest: skills/cola-ddd/java-cola-skill/SKILL.md
source content

Java COLA 架构

COLA = Clean Object-Oriented and Layered Architecture(整洁面向对象分层架构)

分层架构

                        ┌─────────────────────────────────────┐
  Driving Adapter:      │  浏览器  │  定时器  │  消息队列      │
                        └─────────────────────────────────────┘
                                         ↓
  VO ←─────────────── ┌─────────────────────────────────────┐
  (View Object)       │            Adapter 层                │
                      │  controller │ scheduler │ consumer   │
                      └─────────────────────────────────────┘
                                         ↓
  DTO ←────────────── ┌─────────────────────────────────────┐
  (Data Transfer      │              App 层                  │
   Object)            │       service  │  executor           │
                      └─────────────────────────────────────┘
                                         ↓
  Entity ←─────────── ┌─────────────────────────────────────┐
                      │            Domain 层                 │
                      │   gateway │ model │ ability          │
                      └─────────────────────────────────────┘
                                         ↑
  DO ←─────────────── ┌─────────────────────────────────────┐
  (Data Object)       │        Infrastructure 层             │
                      │  gatewayImpl │ mapper │ config       │
                      └─────────────────────────────────────┘
                                         ↓
  Driven Adapter:     │    DB    │   Search   │    RPC      │

依赖方向

Adapter → App → Domain ← Infrastructure
              ↘      ↙
               Client
职责实现
Adapter接收外部请求Controller, Scheduler, Consumer
App用例编排ServiceImpl, CmdExe, QryExe
Domain核心业务逻辑Entity, ValueObject, Gateway, Ability
Infrastructure技术实现GatewayImpl, Mapper, Config
ClientDTO 定义Command, Query, CO, ServiceI

目录结构

project-name/
├── project-adapter/          # Controller
│   └── com/company/project/web/
├── project-app/              # Service 实现
│   └── com/company/project/
│       ├── command/          # *CmdExe.java
│       │   └── query/        # *QryExe.java
│       └── service/          # *ServiceImpl.java
├── project-client/           # API 定义
│   └── com/company/project/
│       ├── api/              # *ServiceI.java
│       └── dto/
│           ├── command/      # *Cmd.java
│           ├── query/        # *Qry.java
│           └── clientobject/ # *CO.java
├── project-domain/           # 领域层
│   └── com/company/project/domain/
│       ├── {aggregate}/      # Entity, ValueObject
│       └── gateway/          # *Gateway.java
├── project-infrastructure/   # 基础设施
│   └── com/company/project/
│       ├── gatewayimpl/      # *GatewayImpl.java
│       └── convertor/        # *Convertor.java
└── start/                    # 启动模块

命名规范

类型后缀位置
命令
Cmd
client/dto/command
查询
Qry
client/dto/query
命令执行器
CmdExe
app/command
查询执行器
QryExe
app/command/query
客户端对象
CO
client/dto/clientobject
数据对象
DO
infrastructure
服务接口
ServiceI
client/api
服务实现
ServiceImpl
app/service
网关接口
Gateway
domain/gateway
网关实现
GatewayImpl
infrastructure/gatewayimpl
转换器
Convertor
infrastructure/convertor

快速创建项目

COLA 提供两种 Archetype:

cola-archetype-web(Web 应用)

适用于 Adapter 和后端服务一体的 Web 应用:

mvn archetype:generate \
    -DgroupId=com.company.project \
    -DartifactId=my-web-app \
    -Dversion=1.0.0-SNAPSHOT \
    -Dpackage=com.company.project \
    -DarchetypeArtifactId=cola-framework-archetype-web \
    -DarchetypeGroupId=com.alibaba.cola \
    -DarchetypeVersion=5.0.0

生成结构:

my-web-app/
├── my-web-app-adapter/      # Controller、定时任务、消息监听
├── my-web-app-app/          # Service 实现、执行器
├── my-web-app-client/       # API 接口、DTO
├── my-web-app-domain/       # 领域模型、Gateway 接口
├── my-web-app-infrastructure/  # Gateway 实现、Mapper
└── start/                   # 启动模块

cola-archetype-service(纯后端服务)

适用于纯后端服务(无 Web 层):

mvn archetype:generate \
    -DgroupId=com.company.project \
    -DartifactId=my-service \
    -Dversion=1.0.0-SNAPSHOT \
    -Dpackage=com.company.project \
    -DarchetypeArtifactId=cola-framework-archetype-service \
    -DarchetypeGroupId=com.alibaba.cola \
    -DarchetypeVersion=5.0.0

生成结构:

my-service/
├── my-service-app/          # Service 实现、执行器
├── my-service-client/       # API 接口、DTO(供其他服务调用)
├── my-service-domain/       # 领域模型、Gateway 接口
├── my-service-infrastructure/  # Gateway 实现、Mapper
└── start/                   # 启动模块

COLA 组件

组件功能
cola-component-dto
Response, Command, Query, PageResponse
cola-component-exception
BizException, SysException, ErrorCode
cola-component-catchlog-starter
@CatchAndLog 异常捕获和日志
cola-component-extension-starter
扩展点机制(多业务线支持)
cola-component-statemachine
状态机(订单流转等)
cola-component-domain-starter
Spring 托管领域实体
cola-component-ruleengine
规则引擎
cola-component-test-container
测试容器

代码模板

详细代码示例请参考:

重构检查清单

  1. 创建 adapter/app/client/domain/infrastructure/start 模块
  2. 配置 Maven 依赖关系
  3. 定义 Command、Query、CO 类
  4. 创建 CmdExe/QryExe 和 ServiceImpl
  5. 定义 Gateway 接口和 GatewayImpl
  6. 创建 Convertor 转换器
  7. 迁移 Controller 到 adapter/web