mica-admin:一套覆盖后端、Web 和移动端的开源权限管理平台

5 阅读6分钟

每次启动一个新的后台管理项目,我们似乎都在重复完成相同的工作:

用户、角色、菜单、部门、字典、文件管理、操作日志、登录认证、按钮权限……

这些功能并不新鲜,却几乎是每个企业级项目绕不开的基础设施。更麻烦的是,当系统还需要同时支持 Web 管理端、移动 App 和小程序时,认证流程、权限模型和接口规范往往又要重新适配一遍。

为了解决这些重复问题,我们持续维护并开源了 mica-admin

mica-admin 是一套面向中小团队和企业应用的模块化单体权限管理平台,集成 Spring Boot 后端、Vue 3 Web 管理端和 uniapp x 移动端,可以直接作为新项目的基础框架,也可以用于现有业务系统的二次开发。

为什么选择 mica-admin?

1. 后端、Web、移动端统一管理

mica-admin 采用 mono-repo 方式组织代码,在一个仓库中同时维护:

  • Spring Boot 后端服务
  • Vue 3 Web 管理端
  • uniapp x 移动 App
  • 数据库脚本与部署工具

三端共用同一套用户、角色、菜单和权限模型。

管理员在后台配置的菜单与按钮权限,可以被 Web 端和移动端统一消费,减少多端开发中权限逻辑重复实现的问题。

项目结构清晰,后端负责认证、授权和业务接口,Web 端用于系统管理,移动端则可以构建 Android、iOS、H5 和微信小程序等应用。

2. 开箱即用的 RBAC 权限体系

权限管理是 mica-admin 的核心能力。

系统已经提供:

  • 用户管理
  • 角色管理
  • 菜单管理
  • 部门管理
  • 字典管理
  • 按钮级权限控制
  • JWT 登录认证
  • RSA 密码加密
  • 算术图形验证码
  • 登录与操作日志

后端基于 Spring Security 和 JWT 完成身份认证,前端通过动态路由和权限指令控制菜单、页面及按钮的访问范围。

对于新项目来说,不需要重新设计一套登录和权限体系,只需要在现有能力上增加业务模块即可。

3. 同时提供 Java 17 和 Java 8 版本

考虑到新项目与存量系统的运行环境不同,mica-admin 提供两条长期维护分支:

分支JavaSpring Boot适用场景
mainJava 17Spring Boot 4.x推荐新项目使用
java8Java 8Spring Boot 2.7.x兼容仍运行在 Java 8 环境中的项目

新项目可以直接选择 main,使用更新的 Java 与 Spring Boot 技术栈;已有 Java 8 基础设施的团队,也可以从 java8 分支平滑开始。

# Java 17 + Spring Boot 4.x
git switch main

# Java 8 + Spring Boot 2.7.x
git switch java8

两条分支保持相近的项目结构和使用方式,降低升级或迁移成本。

4. Vue 3 + Vben Admin 5.x 管理端

Web 管理端基于 Vue 3、TypeScript、Vite、Pinia 和 Naive UI 构建,并将 Vben Admin 5.x 框架源码本地化到项目中。

主要技术包括:

  • Vue 3
  • TypeScript
  • Vite
  • Pinia
  • Naive UI
  • Tailwind CSS
  • Vue I18n
  • ECharts
  • VxeTable

动态菜单由后端权限数据驱动,页面路由可以根据用户权限自动生成。项目也对 mica-admin 后端的登录、验证码、RSA 加密和接口响应格式进行了完整适配。

5. uniapp x 移动端支持

除了传统的后台管理页面,mica-admin 还提供独立的 uniapp x 移动端工程。

移动端复用后端的认证流程与 RBAC 权限模型,可以面向以下平台进行开发:

  • Android
  • iOS
  • H5
  • 微信小程序

项目预留了独立的二次开发目录,通用模块与业务扩展相互隔离,方便团队持续升级基础能力,同时减少业务代码与框架代码之间的冲突。

6. 适合二次开发的模块化结构

mica-admin 采用模块化单体架构。

相比一开始就引入复杂的微服务体系,模块化单体更容易开发、调试和部署,也更适合中小团队快速交付业务。

后端将公共能力、框架能力和业务模块分开组织:

common       公共常量与基础定义
framework    Security、JWT、MyBatis、日志等框架能力
project      用户、角色、菜单及其他业务模块

新增业务时,可以在业务模块中独立扩展,避免直接修改底层框架代码。

当项目规模真正需要服务拆分时,清晰的模块边界也能为后续演进提供基础。

7. 代码生成与低代码能力

项目集成 MyBatis-Plus 代码生成器,可以根据数据库表生成常用的后端代码结构,包括:

  • Entity
  • Mapper
  • Service
  • Controller

同时,项目还集成了 Magic-API,可用于部分接口的快速开发和管理。

这些能力并不是为了替代正常的软件设计,而是希望减少重复模板代码,让开发者把更多时间放在真正的业务逻辑上。

8. 构建和部署更加简单

开发环境下,可以分别启动后端和 Web 管理端:

# 启动后端
mvn spring-boot:run -Dspring-boot.run.profiles=dev

# 启动 Web 管理端
cd mica-admin-web
pnpm install
pnpm dev

生产环境可以通过 Maven Profile 同时构建前后端:

mvn clean package -Pprod -U -Dmaven.test.skip=true

构建完成后,前端资源会被打入后端 Jar,部署时只需要管理一个服务进程。

项目还提供了基于 systemd 的启动脚本和一键发布脚本,适合传统服务器部署场景。

mica-admin 适合哪些项目?

mica-admin 比较适合以下场景:

  • 企业内部管理系统
  • SaaS 产品管理后台
  • CRM、ERP、OA 等业务系统
  • 物联网设备管理平台
  • 同时需要 Web 和移动端的项目
  • 希望快速搭建 RBAC 权限体系的团队
  • 仍需兼容 Java 8 的存量系统
  • 准备使用 Java 17 和 Spring Boot 4.x 的新项目

如果你的项目需要的是一套结构清晰、能够直接开发业务、又不过度复杂的后台基础框架,mica-admin 会是一个值得尝试的选择。

在线体验

在线演示:admin.dreamlu.net

演示账号:

管理员:admin / 123456
普通用户:mica / 123456

请勿在演示环境中录入敏感或真实业务数据。

项目地址

GitHub:github.com/lets-mica/m…

Gitee:gitee.com/dreamlu/mic…

开源协议:Apache License 2.0。

如果 mica-admin 对你的项目有所帮助,欢迎点一个 Star、提交 Issue 或参与 PR。也欢迎基于它构建自己的业务系统,并将使用体验反馈给我们。

让基础能力保持稳定,让团队把时间留给真正有价值的业务。