Skip to content

EchoPro 是基于 Spring Boot 3 的企业级后台管理脚手架,采用前后端分离与模块化设计,覆盖用户与角色权限、JWT 认证、多终端会话、菜单与数据权限、对象存储适配(本地/MinIO/OSS/COS/S3)、站内消息与 WebSocket 推送、Quartz 分布式任务调度、操作/登录/异常日志、Excel 导入导出等公共能力。

License

Notifications You must be signed in to change notification settings

lalala2726/echo-pro

Repository files navigation

EchoPro 企业级后台管理系统

EchoPro Version Spring Boot Java 17 License Build Status Ask DeepWiki

基于 Spring Boot 3 的现代化企业后台管理系统

目录


在线体验

在线演示前端项目仓库

测试账号demo
测试密码admin123


项目截图

截图1 截图2
截图3 截图4
截图5 截图6
截图7 截图8
截图9 截图10
截图11 截图12
截图13 截图14

项目简介

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,请在消息模块中屏蔽相关依赖与发送逻辑。

安装部署

1. 克隆代码

git clone https://github.com/lalala2726/echo-pro.git
cd echo-pro

2. 初始化数据库

CREATE DATABASE echo_pro DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- source docs/sql/echo_pro.sql

3. 修改配置

chuang-api/src/main/resources/application.yml

spring:
  data:
    redis:
      host: 192.168.10.110
      port: 6379
      database: 0
      password: your_redis_password

application-druid.yml

spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/echo_pro?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
      username: your_username
      password: your_password

4. 编译运行

mvn clean package -DskipTests
java -jar chuang-api/target/chuang-api.jar

5. 访问系统

功能 地址 描述
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 状态

详细功能说明

安全认证(chuang-framework)

  • JWT 访问/刷新令牌
  • 多终端会话策略(可配置是否互斥)
  • 注解式权限:@PreAuthorize / @Anonymous
  • 登录重试与锁定策略
  • 安全日志与异常捕获

主要组件:

  • TokenService
  • AuthService
  • PermissionAuth
  • SecurityConfig
  • TokenAuthenticationFilter

用户权限(chuang-system-core)

  • 用户 / 角色 / 部门 / 菜单 / 字典
  • 按钮级与数据级权限
  • 缓存优化与批量操作

文件存储(chuang-system-storage)

  • 多存储策略实现
  • 上传 / 下载 / 预览 / 回收站 / 类型校验
  • 支持 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

消息通知(chuang-system-message)

  • 站内信 / 公告 / 广播
  • 用户 / 角色 / 部门 / 全员推送
  • WebSocket 实时
  • 已读 / 未读 / 删除状态

任务调度(chuang-quartz)

  • Cron / 固定频率 / 一次性任务
  • 集群模式
  • 执行日志与失败策略
  • 任务启停 / 暂停 / 立即执行

系统监控(chuang-system-monitor)

  • 服务器资源
  • JVM 指标
  • 接口耗时统计
  • Prometheus 指标导出
  • 健康检查

公共工具(chuang-common-*)

  • 统一响应:AjaxResult
  • 基础实体:BaseEntity / BaseVo
  • 数据脱敏:@DataMasking
  • Redis 缓存 & 分布式锁
  • Excel 导入导出:@Excel
  • MQ 封装
  • WebSocket 统一会话管理

配置说明

多 Profile 激活

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: true

Quartz 配置

spring:
  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

API 文档

  • 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/** 运行指标

开发指南

IDE 推荐

  • 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>

贡献指南

流程:

  1. Fork 仓库
  2. 创建分支:git checkout -b feature/xxx
  3. 提交代码:git commit -m "feat: 描述"
  4. 推送:git push origin feature/xxx
  5. 发起 Pull Request

提交格式示例:

feat: 添加用户管理功能
fix: 修复登录验证码失效问题
docs: 更新 API 文档
refactor: 重构权限校验逻辑
perf: 优化数据库查询性能
test: 补充用户服务单测

许可证

本项目使用 Apache License 2.0 协议。


致谢


联系我


Star History

如果本项目对你有帮助,欢迎 Star 支持。


About

EchoPro 是基于 Spring Boot 3 的企业级后台管理脚手架,采用前后端分离与模块化设计,覆盖用户与角色权限、JWT 认证、多终端会话、菜单与数据权限、对象存储适配(本地/MinIO/OSS/COS/S3)、站内消息与 WebSocket 推送、Quartz 分布式任务调度、操作/登录/异常日志、Excel 导入导出等公共能力。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •