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 ⭐------这是对开源框架最实在的支持。

相关推荐
苏三说技术2 小时前
Spring AI、LangChain4j、AgentScope、Embabel,哪个AI框架更好?
后端
烽学长2 小时前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端
isfox2 小时前
Python 单例模式:一个类只能有一个实例,到底怎么实现?
后端
其实防守也摸鱼2 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
青山木2 小时前
RocketMQ 入门到原理(三):消息存储原理
java·后端·中间件·架构·rocketmq
小白男神2 小时前
MySQL进阶学习三(视图)
后端·mysql
猿人谷2 小时前
Jev:当 AI 不再生成 Token,而是直接做决策
后端·langchain·aigc
苍何2 小时前
WorkBuddy + 腾讯乐享,原来知识库还能这么用
后端
站大爷IP3 小时前
Python的生成器把我坑惨了,原来yield和return的区别这么大
后端