项目架构
# 项目架构概览
yt4j 采用典型的微服务架构,通过 Spring Cloud 生态构建分布式系统。项目整体结构清晰,职责分明。
# 模块结构
yt4j
├─ yt4j-auth # 鉴权服务
├─ yt4j-commons # 公共模块
│ ├─ yt4j-core # 核心包
│ ├─ yt4j-data # MyBatis-Plus 数据权限
│ ├─ yt4j-flow # 流程编排引擎(同步调用)
│ ├─ yt4j-job # XXL-Job 集成
│ ├─ yt4j-log # 统一日志
│ ├─ yt4j-sa-token # Sa-Token 权限认证
│ ├─ yt4j-security # 安全相关
│ ├─ yt4j-swagger # Knife4j/SpringDoc API 文档
│ └─ yt4j-web # Web 定义相关
├─ yt4j-dependencies # 依赖版本管理
├─ yt4j-gateway # 服务网关【8888】
├─ yt4j-modules # 业务模块
│ ├─ yt4j-crm # CRM 模块
│ ├─ yt4j-flow-server # 流程编排后端服务
│ ├─ yt4j-generator # 代码生成模块(已废弃)
│ ├─ yt4j-monitor # Spring Boot 监控
│ └─ yt4j-sys # RBAC 权限模块
│ ├─ yt4j-sys-api # RBAC 模块 Feign 接口
│ └─ yt4j-sys-svc # RBAC 模块服务实现
└─ yt4j-plugin # 插件模块
└─ yt4j-im # 企业 IM 插件
├─ yt4j-im-api # IM 接口定义
└─ yt4j-feishu # 飞书 IM 实现
# 核心模块说明
# 1. 基础服务层
# yt4j-gateway(服务网关)
- 端口: 8888
- 职责: 统一入口,路由转发、负载均衡、权限校验
- 特性:
- 基于 Spring Cloud Gateway
- 集成 Sa-Token 权限认证
- 支持动态路由配置
# yt4j-auth(鉴权服务)
- 职责: 用户登录、Token 颁发、权限验证
- 特性:
- 基于 Sa-Token 实现
- 支持 Redis 存储 Session
- 提供统一的鉴权接口
# 2. 公共模块层(yt4j-commons)
# yt4j-core(核心包)
提供项目核心功能,包括:
- 统一异常处理
- 通用工具类
- 基础配置类
- 公共常量定义
# yt4j-data(数据权限)
- 基于 MyBatis-Plus 的数据权限实现
- 支持自定义数据权限规则
- 通过 DataScope 参数实现灵活的数据权限控制
# yt4j-flow(流程编排)
- 自主研发的轻量级流程编排引擎
- 特性:
- 支持 JSON 格式流程定义
- 支持 Spring Bean 调用
- 支持 SpEL 表达式条件判断
- 同步调用模式(暂不支持异步)
# yt4j-sa-token(权限认证)
- 封装 Sa-Token 框架
- 提供统一的权限注解和拦截器
- 支持白名单配置
- 网关和服务层双重权限验证
# yt4j-swagger(API 文档)
- 基于 Knife4j/SpringDoc
- 访问地址:
http://localhost:8888/doc.html - 支持聚合微服务 API 文档
- 提供在线调试功能
# yt4j-log(统一日志)
- 基于 Plumelog 的日志收集
- 支持操作日志记录
- 支持 AOP 切面记录
# 3. 业务模块层(yt4j-modules)
# yt4j-sys(系统权限模块)
核心 RBAC 权限管理模块:
- yt4j-sys-api: Feign 接口定义
- yt4j-sys-svc: 服务实现
主要功能:
- 用户管理
- 角色管理
- 菜单管理
- 部门管理
- 字典管理
- 参数配置
# yt4j-crm(CRM 模块)
客户关系管理示例模块:
- 客户管理
- 联系人管理
- 商机管理
# yt4j-flow-server(流程编排服务)
- 流程定义管理
- 流程实例管理
- 提供流程编排的 REST API
# yt4j-monitor(监控服务)
- 基于 Spring Boot Admin
- 服务监控和健康检查
- 查看服务运行状态
# 4. 插件模块(yt4j-plugin)
# yt4j-im(企业 IM 插件)
企业即时通讯集成插件:
- yt4j-im-api: IM 接口抽象
- yt4j-feishu: 飞书 IM 实现
功能:
- 部门同步
- 用户同步
- 消息推送
# 架构设计特点
# 1. 模块化设计
- 清晰的模块划分,职责单一
- 公共功能提取到 commons 模块
- 业务模块独立开发、部署
# 2. 分层架构
- 基础服务层: 网关、鉴权
- 公共模块层: 通用功能封装
- 业务模块层: 具体业务实现
- 插件层: 可插拔的扩展功能
# 3. 技术选型原则
- 最新稳定版本: 优先采用最新稳定版技术栈
- 轻量高效: 选用轻量级框架,避免过度设计
- 易于扩展: 模块化设计,便于功能扩展
# 4. 开发友好
- 提供代码生成工具(EasyCode)
- 完善的 API 文档(Knife4j)
- 统一的异常处理和日志记录
- 清晰的项目结构
# 技术架构图
┌─────────────────────────────────────────────────────────┐
│ 客户端 │
└───────────────────────┬─────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ yt4j-gateway (网关层) [8888] │
│ - 路由转发 - 负载均衡 - 权限校验 - 限流熔断 │
└───────────────────────┬─────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ yt4j-auth │ │ yt4j-sys │ │ yt4j-crm │
│ (鉴权服务) │ │ (系统权限) │ │ (业务模块) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────┼───────────────┘
▼
┌───────────────────────────────┐
│ yt4j-commons (公共层) │
│ - yt4j-core - yt4j-data │
│ - yt4j-flow - yt4j-sa-token│
│ - yt4j-log - yt4j-swagger │
└───────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Nacos │ │ Redis │ │ MySQL │
│ (注册/配置) │ │ (缓存) │ │ (数据库) │
└──────────────┘ └──────────────┘ └──────────────┘
# 未来规划
项目仍在持续演进中,计划添加以下功能:
- OAuth2 平台支持
- 审批流功能
- 流程编排前端页面(拖拽式设计)
- 更多 IM 插件支持(钉钉、企业微信等)
- 无侵入式 SpringDoc 集成
上次更新: 2026/01/04, 09:28:19