
每次跟写 Python 的朋友结对,我都会在同一个地方破防。
需求是"给运营做个管理后台"。我这边 Java:建 Controller、写 Service、定义 DTO、拉一套前端表格组件、配分页、加搜索框、接权限......两天过去了,后台还在"快好了"。
他那边 Django:打开 models.py 写好字段,admin.py 里 admin.register 一下,runserver。后台已经能用了。 增删改查、搜索、过滤、分页,全齐。前后不到十分钟。
这就是 Django Admin 的魔力------模型即后台。你只描述"数据长什么样",UI 自己长出来。它教育了整整一代开发者:管理后台这种重复劳动,本就不该手写。
问题是,这份魔力过去只属于 Python。Java 这边,我们一直在手搓 CRUD。
直到 erupt。

erupt 是什么:Java 世界的"注解即后台"
erupt 是一个基于 Spring Boot 3 的低代码框架。核心思想和 Django Admin 一脉相承,但载体是 Java 注解:
你在一个实体类上打 @Erupt,在字段上打 @EruptField,它就在运行时自动生成完整的管理后台------表格、表单、搜索、校验、权限,零前端代码。
直接上代码,感受一下两者有多像。
Django 这边是这样:
python
# models.py
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
published = models.DateField()
# admin.py
@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'author', 'published')
search_fields = ('title', 'author')
list_filter = ('published',)
erupt 这边是这样:
java
@Erupt(name = "图书管理")
@Table(name = "t_book")
@Entity
public class Book extends BaseModel {
@EruptField(
views = @View(title = "书名"),
edit = @Edit(title = "书名", search = @Search, notNull = true))
private String title;
@EruptField(
views = @View(title = "作者"),
edit = @Edit(title = "作者", search = @Search))
private String author;
@EruptField(
views = @View(title = "出版日期"),
edit = @Edit(title = "出版日期", type = EditType.DATE))
private Date published;
}
一个类,就是一个后台页面。你描述字段怎么展示(@View)、怎么编辑(@Edit)、能不能搜(@Search),剩下的 erupt 全包了。跟 Django "写完 model 就有后台"是同一种爽感。


关键区别:Django Admin 是一个"功能",erupt 是一个"平台"
如果 erupt 只是"Java 版 Django Admin",那也就值得写半篇。但真正让我觉得它值得安利的,是它把这个起点延伸得更远。
Django Admin 的定位很清晰:它是 Django 框架自带的、给开发者用的内部管理工具。想深度定制样式、做复杂业务逻辑,你往往要去覆写模板、引入 django-jazzmin 这类主题包,或者干脆跳出 Admin 自己写。这不是它的缺点------它本就没想当一个"平台"。
而 erupt 从设计上就是奔着"低代码平台"去的。同样是注解驱动,它给了你 Django Admin 之外的一大票能力:
更细的字段与交互控制。 @Edit 支持一大批 EditType(下拉、日期、附件、富文本、地图、级联......),配合 DataProxy 生命周期钩子(beforeAdd / afterUpdate / beforeDelete 等),你能在不写页面的前提下,往增删改查的每个环节插入业务逻辑。想加自定义行操作?实现一个 OperationHandler 就行。
开箱即用的权限体系。 erupt 自带 UPMS(用户 / 角色 / 权限 / 菜单)模块,还支持用 SpEL 表达式(@Match 等)做行级权限过滤------"每个人只能看自己部门的数据"这种需求,注解里一行表达式搞定。Django Admin 的权限偏粗粒度,行级过滤通常要自己写 get_queryset。
数据能力直接内置。 Excel 导入导出、打印,都是内置的,不用东拼西凑第三方库。数据层同时支持 JPA 和 MongoDB。
然后是 Django Admin 完全没有的方向------
- erupt-ai :内置 LLM + MCP 集成(基于 langchain4j),甚至有一个开箱即用的后台 AI Agent(
erupt-ai-claw),能把你的后台变成"能对话、能调工具"的智能管理台。 - erupt-report / erupt-cube:BI 报表与语义层,后台之外还能做数据分析。
- erupt-flow:工作流引擎。
- 以及一整排扩展模块:定时任务、代码生成器、可视化设计器、系统监控、magic-api、WebSocket、消息通知......

那 Django Admin 就没优势了吗?当然有
说句公道话------如果你本来就在写 Python / Django,Django Admin 依然是最优解,没有之一。它足够成熟、文档极好、生态里主题和插件应有尽有,团队上手零成本。为了用 erupt 而把技术栈从 Python 换成 Java,是本末倒置。
erupt 的价值场景很明确:你(或你的团队)本来就在 Java / Spring 生态里。 过去你只能眼馋 Django Admin 的效率,然后回来继续手搓 Controller。现在你有了同级别、甚至更进一步的选择------而且是在你熟悉的 Spring Boot、JPA、注解体系里,不用切换任何东西。
一句话总结这次对比:
Django Admin 证明了"模型驱动后台"这条路是对的;erupt 把这条路,铺到了 Java 世界,并且一直修到了 AI 时代。
上手成本:真的就是加个依赖
erupt 是标准 Spring Boot Starter。引入依赖、在实体类上加注解、启动,后台就在那了。它自带 UPMS、菜单、权限,第一个页面从零到能用,通常就是"写一个带注解的类"的时间。
如果你手上正好有个 Spring Boot 项目、又被"给运营做个后台"的需求缠着,真的建议花十分钟试一下------那种"写完类刷新页面后台就有了"的感觉,Python 同事独享了太久,该轮到我们了。
CTA
erupt 已开源,在线体验与文档:www.erupt.xyz
如果你也受够了在 Java 里手搓管理后台,去 GitHub 给 erupt 点个 Star ⭐------这是对开源框架最实在的支持。