项目介绍
MolanDev Backend 是基于 MolanDev Framework 构建的企业级管理系统,它不仅是一个可直接使用的管理系统,更是展示框架能力的完整示例。
🎯 项目定位
双重价值
- 作为完整应用:提供用户管理、权限控制、定时任务等开箱即用的功能
- 作为框架示例:展示如何使用 MolanDev Framework 构建可切换架构的应用
核心特性
- 双模部署:一套代码,单体/微服务自由切换
- 前端现代化:Vue 3 + Element Plus,支持主题切换、布局切换
- 权限完善:RBAC 模型,支持菜单权限、接口权限、按钮权限
- 功能丰富:字典翻译、操作日志、定时任务、文件管理、消息服务
- 开箱即用:完整的企业级功能,可直接用于生产环境
🏗️ 技术架构
前端技术栈
- Vue 3:最新的 Vue 框架
- Vite:极速的构建工具
- Element Plus:企业级 UI 组件库
- Pinia:轻量级状态管理
- Vue Router:官方路由方案
后端技术栈
- Spring Boot 3.x:最新的 Spring Boot 版本
- MyBatis Plus:强大的持久层框架
- Spring Cloud:微服务全家桶(微服务模式)
- Redis:缓存与分布式锁
- RabbitMQ:消息中间件(微服务模式)
- Nacos:服务注册与配置中心(微服务模式)
核心依赖
- MolanDev Framework:自研的双模部署框架
molandev-util:工具类模块molandev-encrypt:加密模块molandev-lock:分布式锁molandev-datasource:多数据源molandev-file:文件存储molandev-rpc:RPC 调用molandev-event:事件总线molandev-spring:Spring 集成
📦 项目结构
molandev-backend/
├── molandev-apis/ # API 接口定义
│ ├── base-api/ # 基础 API
│ └── ai-api/ # AI 服务 API
│
├── molandev-base/ # 基础服务实现
│ ├── sys/ # 系统管理模块
│ ├── file/ # 文件服务模块
│ ├── msg/ # 消息服务模块
│ └── job/ # 任务调度模块
│
├── molandev-ai/ # AI 服务实现
├── molandev-gateway/ # 网关服务
├── molandev-common/ # 公共模块
└── molandev-standalone-service/ # 单体模式合并模块🔥 核心特性演示
1. 双模部署
yaml
# application.yml
molandev:
run-mode: single # 单体模式
# run-mode: cloud # 微服务模式一行配置,完成切换!
2. 接口即服务
java
// API 定义
@FeignClient(name = "${molandev.service.base:molandev-base}")
public interface UserApi {
@GetMapping("/user/list")
Page<UserDTO> list(@RequestBody UserQuery query);
}
// 服务实现(无需写 Controller)
@Service
public class UserServiceImpl implements UserApi {
@Override
public Page<UserDTO> list(UserQuery query) {
// 业务逻辑
}
}3. 字典自动翻译
java
// 后端
public class UserDTO {
@DictFormat(type = "user_sex", field = "sexName")
private Integer sex; // 返回时自动添加 sexName: "男"
}
// 前端
<DictSelect v-model="form.sex" dictCode="user_sex" />4. 操作日志
java
@Log(title = "用户管理", businessType = BusinessType.INSERT)
public void addUser(SysUser user) {
// 自动记录操作信息
}5. 权限控制
vue
<!-- 前端 -->
<el-button v-auth="'sys:user:add'">新增</el-button>
<el-button v-auths="['sys:user:edit', 'sys:user:delete']">操作</el-button>🎨 前端特色
主题系统
- 日夜间模式:带炫酷圆形扩散动画的主题切换
- 灰色模式:一键切换全站灰度(哀悼模式)
- 配置持久化:主题配置自动保存到 localStorage
布局系统
- 横版布局:顶部菜单布局
- 竖版布局:经典侧边栏布局
- 灵活配置:菜单折叠、手风琴、固定 Header、Logo 显示等
标签页系统
- 多标签页:自动记录访问过的页面
- 智能缓存:基于 KeepAlive 的页面缓存
- 右键菜单:刷新、关闭、关闭其他等操作
业务组件
- DictSelect:字典选择器,自动加载字典数据
- IconSelector:图标选择器,支持 Element Plus、iconfont、SVG
- WangEditor:富文本编辑器
🛡️ 后端特色
认证授权
- RBAC 模型:用户-角色-菜单的灵活权限体系
- JWT 认证:无状态的 Token 认证
- 网关鉴权:统一的权限拦截
- 按钮权限:细粒度的权限控制
业务功能
- 字典管理:统一的数据字典,支持前后端自动翻译
- 操作日志:自动记录用户操作,异步存储
- 定时任务:DelayQueue 实现的轻量级任务调度
- 文件管理:本地/云存储无缝切换,支持分片上传
- 消息服务:站内消息推送,支持消息模板
📈 典型场景
场景一:创业公司快速启动
第 1 天:单体模式开发,本地调试,快速迭代
第 100 天:业务增长,mode=cloud,拆分订单服务
第 365 天:持续演进,按需拆分支付、库存等服务
场景二:学习最佳实践
- 如何使用 MolanDev Framework 构建应用
- 如何设计可切换的架构
- 如何实现 RBAC 权限模型
- 如何实现字典自动翻译
- 如何实现操作日志
场景三:直接生产使用
- 完整的企业级功能
- 经过真实项目验证
- 可直接部署到生产环境
- 可根据需求二次开发
🚀 快速开始
环境要求
- JDK:17 或更高版本
- Node.js:16 或更高版本
- MySQL:8.0 或更高版本
- Redis:6.0 或更高版本
快速启动
bash
# 1. 克隆项目
git clone https://github.com/molandev/molandev-backend
# 2. 初始化数据库
mysql -u root -p < sql/molandev.sql
# 3. 启动后端(单体模式)
cd molandev-backend/molandev-standalone-service
mvn spring-boot:run
# 4. 启动前端
cd molandev-frontend
npm install
npm run dev访问 http://localhost:5173,默认账号:admin / admin123
📚 下一步
🤝 参与贡献
欢迎提交 Issue 和 Pull Request!