我用 30 行 Java 注解,做出了别人花三周写的管理后台,还顺手接入了 DeepSeek

发布时间:2025年5月 | 阅读约需 6 分钟


写在前面: 这不是软广。这是一个后端开发者在连续加班之后,发现了一个真正改变自己工作方式的开源项目后写下的真实经历。如果你也是 Java 后端,这篇文章也许能帮你少踩一些坑。


那个让我彻底崩溃的需求

去年底,业务提了个需求:做一个运营后台,能管用户、查订单、配置参数、导出报表、控制权限......

听起来很普通对吧?

但当我把这个拆成任务清单的时候,我数了数:

  • Controller × 12
  • Service × 12
  • Mapper/Repository × 12
  • 前端页面 × 12(表格 + 表单 + 搜索条件)
  • 权限配置 × N
  • 导入导出逻辑 × 若干

然后我把估时发给组长:6 周

组长直接把钉钉消息已读不回了。


偶然发现 Erupt

那天翻 GitHub Trending,看到一个项目:Erupt

项目简介写着:"注解驱动开发,零前端代码,零 CRUD,自动建表,实现多维数据管理"

我的第一反应是:这种标题我见过太多了,进去十有八九是玩具级别的项目。

但我还是点进去了。

然后我看到了这段代码:

java 复制代码
@Erupt(name = "用户管理", power = @Power(export = true, importable = true))
@Table(name = "t_user")
@Entity
public class User extends BaseModel {

    @EruptField(
        views = @View(title = "用户名"),
        edit = @Edit(title = "用户名", search = @Search(vague = true))
    )
    private String username;

    @EruptField(
        views = @View(title = "注册时间", sortable = true),
        edit = @Edit(title = "注册时间", search = @Search)
    )
    private Date createTime;

    @EruptField(
        views = @View(title = "账号状态"),
        edit = @Edit(title = "账号状态", type = EditType.BOOLEAN, search = @Search)
    )
    private Boolean active;
}

就这,三十几行。

我克隆了项目,直接运行 EruptSampleApplication.main(),没有配置数据库、没有改任何 YAML,H2 内存数据库自动启动。

打开浏览器,输入 localhost:8080,登录(账号密码都是 erupt)。

管理后台在那里。

带分页列表的。带搜索框的。带新增编辑表单的。带 Excel 导出按钮的。带权限控制的。

我盯着屏幕看了大概一分钟,确认这不是写死的假数据。


它到底是怎么做到的?

Erupt 的核心思路是:把前端 UI 的语义,直接编码进 Java 注解

运行时,框架把你的注解翻译成 JSON Schema,发给前端(Angular 写的,内置在 jar 里),前端根据 Schema 动态渲染出对应的 Table、Form、搜索条件。

这意味着:

  • 没有代码生成,不是把模板代码"打印"出来让你维护
  • 纯运行时动态,注解改了,UI 立刻变
  • 完全类型安全,字段改名,编译器告诉你哪里出错

而且它基于 Spring Boot,不是另起炉灶的封闭系统。你所有原来的 Spring Bean、Service、Repository 全都能正常用。


我最常用的几个特性

🔍 类型安全查询,告别魔法字符串

java 复制代码
List<User> users = eruptDao.lambdaQuery(User.class)
    .like(User::getUsername, "张")
    .eq(User::getActive, true)
    .ge(User::getCreateTime, "2024-01-01")
    .list();

方法引用 + 链式查询,字段改名的时候编译器直接报错,不会等到上线才发现。


📊 数据分析面板,SQL 写完就出报表

以前做 BI 报表,要么找数据团队,要么自己搭 Grafana、写 SQL、调样式,一套流程下来快一周。

Erupt 有个 @EruptCube 注解:

java 复制代码
@EruptCube(
    name = "订单趋势分析",
    sql = "select channel, region, status, amount from t_order"
)
public class OrderCube {

    @Dimension(title = "渠道")
    private String channel;
    
    @Dimension(title = "地区")
    private String region;

    @Measure(title = "订单量", sql = "count(*)")
    private Long orderCount;

    @Measure(title = "总金额", sql = "sum(amount)")
    private BigDecimal totalAmount;
}

写完这个,系统直接给你一个多维分析面板,支持维度筛选、指标切换、数据下钻。

BI 报表从此自给自足。


🔐 行列权限,细粒度到字段级别

不同角色看到的不是"不同菜单",而是真正不同的数据和不同的字段

运营只能看自己负责区域的数据,财务看到的金额字段是完整的,普通员工只看到脱敏后的。

这种权限在大多数系统里要单独写一套过滤逻辑,在 Erupt 里一个注解配置搞定。


然后 AI 来了

这是让我真正兴奋的部分。

2025 年,Erupt 的 erupt-ai 模块已经相当成熟。它支持超过 50 个大模型提供商

提供商 代表模型
OpenAI GPT-4o
Anthropic Claude 3.7 Sonnet
Google Gemini 2.0 Flash
DeepSeek DeepSeek-R1(思考模型)
阿里云 通义千问
智谱 GLM-4
字节 豆包
月之暗面 Kimi-K2
Ollama 本地私有化任意模型

但真正让我瞠目结舌的,是一个叫 erupt-ai-claw 的子模块。


用中文和你的管理系统"对话"

AI Claw 的核心理念是:通过自然语言直接驱动你的业务系统

不是查数据库(不安全),而是直接调用你已有的 @Erupt 实体的业务逻辑。

你可以对着它说:

"帮我查一下上周注册但还没完成实名认证的用户"
"把所有状态为'待审核'的申请,按照提交时间排序,导出成 Excel"
"统计一下过去 30 天,按渠道分组的转化率"

它就真的去执行了。

背后的原理是 @AiToolbox + @Tool 注解------你把自己的 Spring Bean 暴露成 AI 工具:

java 复制代码
@AiToolbox
@Component
public class OrderTools {

    @Autowired
    private OrderService orderService;

    @Tool("根据用户 ID 查询最近的订单记录")
    public List<Order> getRecentOrders(Long userId, int days) {
        return orderService.getRecentOrders(userId, days);
    }

    @Tool("将指定订单标记为人工审核通过")
    public String approveOrder(Long orderId) {
        orderService.approve(orderId);
        return "订单 " + orderId + " 已审核通过";
    }
}

加两个注解,你的业务方法就变成了 AI 的"手"。


它还支持 MCP 协议

如果你关注 AI Agent 领域,你一定听说过 MCP(Model Context Protocol)。

Erupt 的 AI 模块内置了 MCP 服务器支持,通过管理界面就能配置:把任何支持 MCP 的工具(文件系统、Git、数据库、浏览器等)接入你的 AI 助手。

这意味着你的后台系统可以通过对话控制浏览器、读写服务器文件、执行 Shell 命令。

(官方有警告:AI Claw 拥有较高系统权限,不建议在生产环境开启。这个警告很诚实,我欣赏这种诚实。)


真实项目里的 Erupt

我用 Erupt 重构了那个"6 周"的运营后台,最终:

  • 实际耗时:11 天(含需求沟通时间)
  • Java 代码量:比原来少了约 73%
  • 前端代码:0 行
  • 上线后新增功能迭代速度:快了约 4 倍(因为加字段真的只是加一个注解)

当然,Erupt 不是银弹。高度定制化的交互逻辑(比如拖拽排序、复杂图表交互)仍然需要自己处理。但对于绝大多数内部工具和管理后台场景,它的注解体系已经足够覆盖。


五分钟上手

1. 加 Maven 依赖

xml 复制代码
<dependency>
    <groupId>xyz.erupt</groupId>
    <artifactId>erupt-admin</artifactId>
    <version>${最新版本}</version>
</dependency>

2. 启动类加 @EruptScan

java 复制代码
@EruptScan
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

3. 写你的 @Erupt 实体

启动,进 localhost:8080,用 erupt/erupt 登录。

就这三步。


一些真实数据

  • Maven Central 月均下载量:数十万次
  • GitHub / Gitee / GitCode 综合 Star 数:持续增长
  • 覆盖场景:电商、医疗、物流、政务、SaaS、内部工具......
  • 最新版本:持续更新,AI 相关功能尤其活跃

我的建议

如果你是 Java 后端开发者,正在:

✅ 做内部工具 / 运营后台 / 数据管理平台

✅ 厌倦了重复写 CRUD

✅ 想接入 AI 但不想从头搭架子

✅ 需要快速交付又不想降低代码质量

那 Erupt 值得你花一个下午去认真试一试。

它的文档写得很清晰,社区也挺活跃,有问题在 GitHub Issues 里提,响应速度不错。


支持这个项目最简单的方式

Erupt 是完全开源的(Apache 2.0),商业使用也免费。

如果这篇文章让你觉得有价值,最好的方式是去 GitHub 给它点一个 ⭐ Star

👉 github.com/erupts/erup...

一个 Star 对你来说只需要 3 秒,对开源项目来说意味着更多人能发现它,意味着更多贡献者愿意参与,意味着它能走得更远。


🔗 相关链接汇总


如果你对 Java 后端、低代码架构、AI 工程化感兴趣,欢迎关注本公众号。我会持续分享真实项目里用到的技术和踩过的坑。

转发本文,让更多后端开发者知道这个项目。

相关推荐
派星3 小时前
Jetson Orin Nano连接CSI摄像头并实现Gstreamer推流
人工智能·后端
欧雷殿3 小时前
跨设备自动化:家庭 AI 工作台的首个小目标
后端·agent·aiops
SsunmdayKT4 小时前
前后端项目部署与运行机制全流程详解
前端·后端
无心水4 小时前
【Hermes:MCP 与工具实战】28、GitHub MCP 深度实战:PR 审查、Issue、自动汇报全搞定
人工智能·github·issue·openclaw·养龙虾·hermes·honcho
Reart4 小时前
从0解构tinyWeb项目--(Day:10)
前端·后端·架构
SamDeepThinking4 小时前
程序员如何接受工作内容毫无意义?
java·后端·程序员
逛逛GitHub4 小时前
GitHub 上狂揽 1.8 万 Star!开源平替的 Claude Design。
github
_Evan_Yao4 小时前
一文搞懂:AI编程辅助工具——从GitHub Copilot到通义灵码,不同人群如何驾驭AI编程助手?
人工智能·后端·copilot·ai编程
木雷坞5 小时前
边缘视频分析节点断网恢复排查记录
后端