Wujies 无界平台

v5.x 当前版本 · 平台极小,应用外置

平台极小,应用外置,装完即用

应用市场式插件平台:平台极小、应用外置、装完即用。业务能力以插件应用的形式从市场安装,全程不需要重启宿主。

装完即用不重启宿主多租户隔离MIT 许可
wujies.cn · 平台工作台
平台工作台总览

平台工作台总览

/images/home/hero-dashboard.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

官方应用
11
菜单项
508
页面视图
100
权限按钮
408

界面一览

装完之后长这样

工作台、应用市场、开发台、菜单归属、消息中心与系统设置,都是同一套宿主里的页面。

工作台:应用入口与运行状态

工作台:应用入口与运行状态

/images/docs/workplace.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

应用市场:安装、升级与卸载

应用市场:安装、升级与卸载

/images/docs/app-market.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

应用开发台:一键开发与打包

应用开发台:一键开发与打包

/images/docs/plugin-console.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

菜单归属:每个菜单属于哪个应用

菜单归属:每个菜单属于哪个应用

/images/docs/menu-ownership.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

消息中心:站内信与系统通知

消息中心:站内信与系统通知

/images/docs/message-center.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

系统设置:站点、登录、存储与客户端

系统设置:站点、登录、存储与客户端

/images/docs/settings-tabs.png

截图完成后放到 public 对应路径即可自动替换,无需改代码。

核心能力

平台极小,能力外置

平台只负责底座与契约,业务能力以应用形式独立构建、独立发布、按需安装。

应用外置

业务模块独立打包成「应用」(后端 jar + 前端远程产物),从应用市场安装 / 升级 / 卸载,宿主不重新构建。

契约随应用走

平台里没有 *-api 契约模块,平台对 cn.wujies.<app>.* 的 Java 引用为 0。每个应用是自包含的一个工程。

热插拔

每个应用一个独立类加载器与 Spring 子上下文。装了就进路由清单与登录检查,卸了就出清单,不需要重启。

多租户

应用按租户安装与授权;菜单归属可追溯,管理员改不坏、也删不掉应用声明的菜单。

包安全

产物白名单 + 分离式签名(signature.txt 覆盖除自身外全部文件);三档模式 off / warn / enforce,默认 enforce。

一键部署

提供 1Panel 应用包(平台两形态 + 定时任务调度中心 + 服务监控中心),容器首次启动自动建库建表。

适合这些场景

  • 一套系统交付多个客户,客户之间的功能组合不同。
  • 客户临时加模块,但不能停机、不能重新发版。
  • 想做应用市场 / 插件生态,让第三方上架应用。
  • 想把「平台」与「业务」的边界固化在工程结构里。

这些情况直接用上游更省事

  • 功能固定,只服务一个客户。
  • 只是想把代码分模块、写整洁,没有分发诉求。
  • 不打算维护插件运行时、包签名与迁移编排。
  • 团队规模小,停机发版可以接受。

常见问题

先回答几个高频疑问

和 RuoYi-Vue-Plus 是什么关系?

底座能力来自 RuoYi-Vue-Plus 并完整保留;区别在业务模块的交付方式——从编译期耦合改成运行期安装的应用。

为什么平台里没有 *-api 契约模块?

契约随应用走。平台对 cn.wujies.<app>.* 的 Java 引用为 0,每个应用是自包含工程;这是刻意的边界,不是没做完。

安装、升级应用需要重启宿主吗?

不需要。每个应用有独立类加载器与 Spring 子上下文,装了就进路由清单与登录检查,卸了就出清单。

应用的前端页面是怎么加载的?

后台前端在运行期按后端清单 import() 应用的 ESM 产物,裸模块由 import map 指到宿主同一份实例,避免双 Vue。

可以商用吗?

项目以 MIT 协议发布,可商用;请在衍生项目中保留原作者的版权声明。

开始使用

写一个自己的应用

一条命令生成后端、迁移脚本与前端页面;打开开发模式后,重建 jar 就能热加载,不需要重新打包上传。