测试账号:demo
测试密码:admin123
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
EchoPro 是一套面向企业级场景的现代化后台管理系统,采用前后端分离与模块化架构,聚焦 安全 / 可扩展 / 可维护 / 可观测 四大能力。内置权限体系、统一认证、文件存储、消息通知、任务调度、系统监控等通用基础能力。
- 模块化架构:API / Framework / System / Quartz / Common 解耦,便于扩展裁剪
- 认证鉴权:Spring Security 6 + JWT,无状态与多端会话支持
- 多存储适配:本地 / MinIO / 阿里 OSS / 腾讯 COS / AWS S3 统一抽象
- 监控与可观测:Actuator + Micrometer + Prometheus 指标采集与健康检查
- 高性能:Redis 缓存、异步化、连接池优化
- 开发友好:统一响应、异常规范、工具与注解
- 分布式调度:Quartz 集群任务调度与执行监控
- 消息能力:RabbitMQ + WebSocket 实时推送
| 功能模块 | 描述 |
|---|---|
| 用户管理 | 用户 CRUD、状态控制、角色绑定、组织归属 |
| 权限管理 | 角色权限、菜单/按钮/数据权限 |
| 组织架构 | 部门、岗位、树形结构 |
| 菜单管理 | 动态菜单、前端路由元数据、图标权限 |
| 字典管理 | 字典项维护、缓存加速 |
| 文件管理 | 多存储源、上传下载、预览、回收站、安全校验 |
| 消息通知 | 站内消息、公告、分组推送、WebSocket 实时 |
| 任务调度 | Cron/简单/一次性任务、执行日志、集群支持 |
| 系统监控 | 服务器/JVM/接口性能/业务指标 |
| 日志管理 | 操作、登录、异常、安全审计 |
| 分类 | 技术 | 版本 |
|---|---|---|
| 后端框架 | Spring Boot | 3.4.3 |
| 安全 | Spring Security | 6.4.4 |
| 认证 | JWT | - |
| ORM | MyBatis-Plus | 3.5.10 |
| 数据库 | MySQL | 8.0+ |
| 缓存 | Redis | 6.0+ |
| 连接池 | Druid | 1.2.24 |
| 调度 | Quartz | 2.5.0 |
| 文档 | SpringDoc OpenAPI | 2.8.3 |
| 监控 | Actuator + Micrometer | - |
| 消息队列 | RabbitMQ | 3.8+ |
| 对象存储 | MinIO / OSS / COS / S3 | - |
| 模块 | 说明 |
|---|---|
chuang-api |
应用入口(Controller / 配置 / 启动) |
chuang-framework |
框架核心(安全、拦截器、注解) |
chuang-system-core |
业务核心(实体 / 服务 / Mapper / 模型) |
chuang-system-storage |
文件存储模块 |
chuang-system-message |
消息通知模块 |
chuang-system-monitor |
系统监控模块 |
chuang-common-core |
公共工具与基础封装 |
chuang-common-redis |
Redis 操作与缓存封装 |
chuang-common-excel |
Excel 导入导出 |
chuang-common-mq |
MQ 封装(RabbitMQ) |
chuang-common-websocket |
WebSocket 封装 |
chuang-quartz |
任务调度层(调度器 / 执行器 / 配置) |
| 组件 | 版本要求 | 必需 | 说明 |
|---|---|---|---|
| JDK | 17+ | 是 | 运行环境 |
| Maven | 3.6+ | 是 | 构建工具 |
| MySQL | 8.0+ | 是 | 关系数据库 |
| Redis | 6.0+ | 是 | 缓存与分布式锁 |
| RabbitMQ | 3.8+ | 否 | 消息通知(不开启需调整) |
| MinIO | Latest | 否 | 对象存储测试 |
如果不使用 RabbitMQ,请在消息模块中屏蔽相关依赖与发送逻辑。
git clone https://github.com/lalala2726/echo-pro.git
cd echo-proCREATE DATABASE echo_pro DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- source docs/sql/echo_pro.sqlchuang-api/src/main/resources/application.yml
spring:
data:
redis:
host: 192.168.10.110
port: 6379
database: 0
password: your_redis_passwordapplication-druid.yml
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/echo_pro?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: your_username
password: your_passwordmvn clean package -DskipTests
java -jar chuang-api/target/chuang-api.jar| 功能 | 地址 | 描述 |
|---|---|---|
| API 文档 | http://localhost:8080/swagger-ui.html | Swagger UI |
| 监控入口 | http://localhost:8080/actuator | Actuator 总览 |
| 数据库监控 | http://localhost:8080/druid | Druid 监控 |
| 健康检查 | http://localhost:8080/actuator/health | Health 状态 |
- JWT 访问/刷新令牌
- 多终端会话策略(可配置是否互斥)
- 注解式权限:
@PreAuthorize/@Anonymous - 登录重试与锁定策略
- 安全日志与异常捕获
主要组件:
TokenServiceAuthServicePermissionAuthSecurityConfigTokenAuthenticationFilter
- 用户 / 角色 / 部门 / 菜单 / 字典
- 按钮级与数据级权限
- 缓存优化与批量操作
- 多存储策略实现
- 上传 / 下载 / 预览 / 回收站 / 类型校验
- 支持 MinIO / OSS / COS / S3 / Local
示例:
storage:
active-type: minio
minio:
endpoint: http://127.0.0.1:9000
access-key: minioadmin
secret-key: minioadmin
bucket-name: echo-pro- 站内信 / 公告 / 广播
- 用户 / 角色 / 部门 / 全员推送
- WebSocket 实时
- 已读 / 未读 / 删除状态
- Cron / 固定频率 / 一次性任务
- 集群模式
- 执行日志与失败策略
- 任务启停 / 暂停 / 立即执行
- 服务器资源
- JVM 指标
- 接口耗时统计
- Prometheus 指标导出
- 健康检查
- 统一响应:
AjaxResult - 基础实体:
BaseEntity/BaseVo - 数据脱敏:
@DataMasking - Redis 缓存 & 分布式锁
- Excel 导入导出:
@Excel - MQ 封装
- WebSocket 统一会话管理
spring:
profiles:
active: druid,rabbitmq,quartz,monitor,storage,cors| 文件 | 说明 |
|---|---|
application.yml |
主配置 |
application-druid.yml |
数据源配置 |
application-rabbitmq.yml |
消息队列配置 |
application-quartz.yml |
调度配置 |
application-monitor.yml |
监控配置 |
application-storage.yml |
存储配置 |
application-cors.yml |
跨域配置 |
security:
secret: your_jwt_secret_key
header: Authorization
password-config:
lock-time: 3
max-retry-count: 5
session:
access-token-expire-time: 7200000
refresh-token-expire-time: 2592000
multi-device: truespring:
quartz:
job-store-type: jdbc
wait-for-jobs-to-complete-on-shutdown: false
overwrite-existing-jobs: true
auto-startup: true
properties:
org:
quartz:
scheduler:
instanceName: QuartzScheduler
instanceId: AUTO
jobStore:
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 15000- Swagger UI:
http://localhost:8080/swagger-ui.html - OpenAPI JSON:
http://localhost:8080/v3/api-docs
| 模块 | 路径前缀 | 描述 |
|---|---|---|
| 认证 | /auth/** |
登录 / 注册 / 刷新 |
| 用户 | /system/user/** |
用户管理 |
| 角色 | /system/role/** |
权限授权 |
| 部门 | /system/dept/** |
组织结构 |
| 菜单 | /system/menu/** |
菜单权限 |
| 文件 | /system/storage/** |
文件处理 |
| 消息 | /system/message/** |
消息通知 |
| 调度 | /system/job/** |
定时任务 |
| 监控 | /monitor/** |
运行指标 |
- IntelliJ IDEA
- 建议插件:MyBatis X、Mybatis Log Free、Alibaba Java Coding Guidelines
- 编码:UTF-8
- 缩进:4 空格
- 类名:UpperCamelCase
- 方法名:lowerCamelCase
- 常量:UPPER_SNAKE_CASE
- 提交信息:遵循 Conventional Commits
master # 生产
dev # 开发主干
目录结构:
chuang-system-new/
├── src/main/java/cn/zhangchuangla/system/new/
│ ├── entity/
│ ├── mapper/
│ ├── service/
│ ├── model/
│ └── config/
├── src/main/resources/mapper/
└── pom.xml
依赖示例:
<dependency>
<groupId>cn.zhangchuangla</groupId>
<artifactId>chuang-common-core</artifactId>
</dependency>聚合:
<modules>
<module>chuang-system-new</module>
</modules>流程:
- Fork 仓库
- 创建分支:
git checkout -b feature/xxx - 提交代码:
git commit -m "feat: 描述" - 推送:
git push origin feature/xxx - 发起 Pull Request
提交格式示例:
feat: 添加用户管理功能
fix: 修复登录验证码失效问题
docs: 更新 API 文档
refactor: 重构权限校验逻辑
perf: 优化数据库查询性能
test: 补充用户服务单测
本项目使用 Apache License 2.0 协议。
- 作者:Chuang
- 邮箱:
chuang@zhangchuangla.cn - 后端仓库:https://github.com/lalala2726/echo-pro
- 前端仓库:https://github.com/lalala2726/echoPro-front-end
- 问题反馈:提交 Issues
如果本项目对你有帮助,欢迎 Star 支持。













