Java 开发者的 Django Admin,终于来了

每次跟写 Python 的朋友结对,我都会在同一个地方破防。

需求是"给运营做个管理后台"。我这边 Java:建 Controller、写 Service、定义 DTO、拉一套前端表格组件、配分页、加搜索框、接权限......两天过去了,后台还在"快好了"。

他那边 Django:打开 models.py 写好字段,admin.pyadmin.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 ⭐------这是对开源框架最实在的支持。

相关推荐
XuCoder1 小时前
Redis 分片集群:它到底是怎么把数据分片又路由的?
后端
吃饱了得干活1 小时前
Java Map 核心原理:从数据结构到 put/get 执行,一篇彻底讲透
java·后端
不才不才不不才1 小时前
Spring 源码系列(17): HandlerMapping 与 HandlerAdapter 两大体系
java·后端·spring
Seven971 小时前
AI杂谈:别再问AI会不会替代你,先看你是不是驾驶员
人工智能·后端
ERD Online2 小时前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
(轻舟已过万重山)2 小时前
第40章 Spring AI 实战:企业级 AI 应用架构
人工智能·spring·架构
u1301302 小时前
GitHub 热榜项目:周榜(2026-08-09)
github
IT_陈寒2 小时前
Vite热更新失效?我的几个犯傻操作害我debug两小时
前端·人工智能·后端
凤山老林2 小时前
Spring Boot 大文件处理实战:分片上传、断点续传与 OSS 集成
java·spring boot·后端·大文件上传·分片上传·断点续传