JeecgBoot:AI低代码平台集成代码生成器与知识库

原名: jeecgboot /

  JeecgBoot

基本信息

  • 描述: 【AI低代码平台】AI low-code platform empowers enterprises to quickly develop low-code solutions and build AI applications. 助力企业快速实现低代码开发和构建AI应用! AI应用平台涵盖:AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件,聊天式业务操作等。 强大代码生成器:实现前后端一键生成,无需手写代码! 显著提升效率节省成本,又不失灵活~
  • 语言: Java
  • 星标: 45,132 (+16 stars today)
  • 链接: https://github.com/jeecgboot/JeecgBoot
  • DeepWiki: https://deepwiki.com/jeecgboot/JeecgBoot

DeepWiki 速览(节选)

JeecgBoot Overview

Relevant source files

Purpose and Scope

This document introduces JeecgBoot as an enterprise-level AI low-code development platform, explaining its core value proposition and position in the enterprise software ecosystem. It provides the conceptual foundation for understanding how JeecgBoot combines code generation, visual development, and AI capabilities into a unified platform.

For detailed technical information:

What is JeecgBoot?

JeecgBoot is an enterprise-grade AI-enhanced low-code development platform built on Spring Boot 3.5.5, Vue 3, and Spring Cloud Alibaba 2023.0.3.3. The platform provides three development approaches:

  1. Code Generation - Maven-based code generator (jeecg-boot-base-core/CodeGenerateUtil) producing Vue3 + Spring Boot code
  2. OnlineCoding - Zero-code visual configuration through @jeecg/online package and OnlineCgformHeadController
  3. AI Platform - LLM integration via jeecg-boot-module-airag module with RAG using LangChain4j

The architecture supports two deployment modes:

  • Monolithic : jeecg-system-start (single JAR, port 8080)
  • Microservices : jeecg-cloud-gateway (port 9999) → jeecg-system-cloud-start (port 7001) + jeecg-demo-cloud-start (port 7002)

Current Version : 3.9.0 (Released: December 1, 2025)
License : Apache License 2.0
Vendor : Beijing Guoju Software (北京国炬软件)
Primary Repositories :

  • Backend: jeecg-boot (Java/Maven)
  • Frontend: jeecgboot-vue3 (Vue3/TypeScript/Vite)

Sources: README.md1-44 jeecg-boot/README.md1-44 README.md159-190

Core Value Proposition

JeecgBoot addresses the automation vs. flexibility trade-off through a four-tier development paradigm:

Four-Tier Development Flow

Development Approach by Complexity:

Feature TypeCode PathKey ComponentsExit Point
Simple CRUDAI → OnlineCodingOnlCgformHeadEntity, OnlCgformFieldEntityTier 2 (zero-code)
Standard BusinessCode GeneratorCodeGenerateOneToMany.ftl, jeecgOneMain.ftlTier 3 (template + tweaks)
Complex LogicGenerator + CustomServiceImpl, Controller with manual methodsTier 4 (full control)

Implementation Details:

  • Generated Code Format : Standard Vue3 SFC + Spring Boot @RestController classes (not proprietary DSL)
  • Merge Strategy : Generated files in src/main/java alongside manually created files; developers extend base classes
  • AI Integration : AiragChatServiceImpl calls LangChain4jService → LLM → generates OnlineCgformHeadEntity configuration
  • Security From Day 1 : Generated controllers include @RequiresPermissions, QueryGenerator for data permissions

Code Generator Templates (jeecg-boot-base-core/src/main/resources/jeecg/code-template-online):

  • jeecgOneMain.ftl - Single table CRUD
  • jeecgTreeMain.ftl - Tree structure
  • jeecgOneToMany.ftl - One-to-many relations
  • jvxeOnlineMain.ftl - Inline editable tables

Sources: README.md20-36 jeecg-boot/README.md19-33 README.md111-157

Platform Architecture Modes

JeecgBoot supports two deployment architectures using shared business logic modules:

Architecture Mode Diagram

Module Comparison:

ComponentMonolithicMicroservicesShared
Entry PointJeecgSystemApplication.main()JeecgCloudGatewayApplication.main()N/A
Business Logicjeecg-system-bizjeecg-system-biz✓ Identical
Core Utilitiesjeecg-boot-base-corejeecg-boot-base-core✓ Identical
Configurationapplication.yml (local profile)bootstrap.yml + Nacos configDifferent
Service DiscoveryNone@EnableDiscoveryClient, NacosNamingServiceDifferent
API GatewayNoneGatewayFilterFactory, RouteLocatorDifferent
Build Outputjeecg-system-start.jar (single)Multiple JARsDifferent

Switching Mechanism:

Business logic classes in jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ remain unchanged. Only startup classes and configuration differ:

  • Monolithic : Run jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
  • Microservices : Run jeecg-server-cloud/jeecg-cloud-gateway + jeecg-server-cloud/jeecg-system-cloud-start

Key Classes:

  • org.jeecg.JeecgSystemApplication - Monolithic main class
  • org.jeecg.cloud.JeecgCloudGatewayApplication - Gateway main class
  • org.jeecg.cloud.JeecgSystemCloudApplication - System service main class
  • com.alibaba.nacos.client.NacosConfigService - Config center client

Sources: README.md72-82 jeecg-boot/README.md218-243

Repository Organization

The platform consists of two primary repositories with Maven multi-module (backend) and pnpm workspace (frontend) organization:

Backend Repository Structure (jeecg-boot/)

Frontend Repository Structure (jeecgboot-vue3/)

Key Directory Paths:

ModulePathPurpose
Parent POMjeecg-boot/pom.xmlDependency versions, modules list
Core Utilitiesjeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/Shared utilities, config, annotations
System Businessjeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/User, role, dept, menu services
Monolithic Entryjeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.javaMain class for single deployment
Cloud Entryjeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/cloud/JeecgSystemCloudApplication.javaMain class for microservices
AI Modulejeecg-boot/jeecg-boot-module-airag/src/main/java/org/jeecg/modules/ai/AI chat, flows, knowledge base
Vue Entryjeecgboot-vue3/src/main.tsFrontend bootstrap
Online Packagejeecgboot-vue3/packages/@jeecg/online/OnlineCoding components
AI Flow Packagejeecgboot-vue3/packages/@jeecg/aiflow/AI flow designer UI

Cross-Module Dependencies:

  • All business

[…truncated…]


导语

JeecgBoot 是一款基于 Java 的企业级 AI 低代码开发平台,旨在通过集成代码生成器与可视化设计,帮助企业快速构建业务系统并落地 AI 应用。它适合希望提升研发效率、降低开发成本,同时又不想丧失底层代码灵活性的技术团队。本文将简要介绍其核心架构、AI 功能模块(如知识库与流程编排)以及代码生成机制,为你评估该平台提供参考。


摘要

JeecgBoot 项目简介

JeecgBoot 是一款基于 Java 语言的企业级 AI 低代码开发平台。该项目在 GitHub 上拥有极高的人气,目前星标数已超过 4.5 万

核心定位与价值 JeecgBoot 旨在通过强大的代码生成器和可视化开发能力,赋能企业快速构建应用程序,显著提升开发效率并降低成本。它不仅是一个开发框架,更是一个融合了 AI 技术的综合解决方案,帮助企业在不失灵活性的前提下实现快速交付。

主要技术栈与特性

  • 技术基础:基于 Spring Boot 3.5.5Vue 3Spring Cloud Alibaba 2023 构建,采用前后端分离架构。
  • 低代码能力:拥有强大的代码生成器,支持前后端代码一键生成,开发者无需手写大量基础代码即可通过在线表单设计、报表设计等功能快速构建业务逻辑。
  • AI 赋能 (AIGC):平台深度集成 AI 能力,提供涵盖 AI 应用、模型管理、AI 聊天助手、知识库、AI 流程编排、MCP 协议及插件等功能的完整 AI 生态,支持聊天式业务操作。

开发模式 JeecgBoot 提供了灵活的开发路径,支持基于 Maven 的代码生成模式以及可视化的低代码拖拽模式,能够满足不同场景下的企业级开发需求。


评论

总体判断

JeecgBoot 是目前国内 Java 生态中成熟度极高、且最具野心的“低代码+AI”融合开发平台。它成功地将传统的代码生成器升级为可视化的生产力平台,并通过引入 AI Agent 和知识库,试图解决企业级应用开发中“重复劳动多、业务变更频繁、AI落地难”的三大痛点。

深入评价维度

1. 技术创新性:从“代码生成”向“AI 辅助编排”的跨越

  • 事实: 仓库描述明确指出其核心为“AI低代码平台”,并集成了“AI应用、模型、知识库、AI流程编排、MCP和插件”以及“聊天式业务操作”。底层采用 Spring Boot(后端)与 Vue 3(前端)分离架构。
  • 推断: JeecgBoot 的差异化在于它没有止步于传统的 CRUD(增删改查)生成器。其创新性体现在交互范式的转变:通过引入“聊天式业务操作”,它试图让用户通过自然语言与系统交互,而非仅仅依赖图形界面。此外,支持 MCP (Model Context Protocol) 表明其架构具备前瞻性,能够与大模型生态进行标准化对接,避免了被单一 AI 厂商锁定,这在当前低代码平台中是非常先进的技术架构。

2. 实用价值:显著降低“重复性建设”成本

  • 事实: 描述中强调“强大代码生成器:实现前后端一键生成,无需手写代码”,并拥有 45k+ 的星标数。
  • 推断: 对于企业级后台管理系统(CMS、ERP、OA)而言,JeecgBoot 的实用价值极高。它解决了 Java 开发中最为繁琐的“Boilerplate Code”(样板代码)编写工作。通过在线表单设计器和代码生成器的结合,它可以将原本需要 3-5 天的单表开发工作量压缩至分钟级。其“AI流程编排”功能则进一步降低了业务人员处理复杂工作流的门槛,使得非技术人员也能参与业务逻辑的调整。

3. 代码质量与架构:企业级标准的微服务基石

  • 事实: 仓库包含详细的 README 分支(包括中文、英文、AI 专项文档),且前后端分离清晰(jeecg-bootjeecgboot-vue3)。
  • 推断: 作为一个长期维护的大型开源项目,JeecgBoot 遵循了主流的企业级 Java 开发规范。其架构设计通常采用 Spring Boot + Mybatis-Plus + Ant Design Vue 的经典组合,这种组合虽然不是最前沿的“激进派”,但却是稳定性最高、招聘成本最低、社区资料最丰富的“稳健派”。对于追求系统可维护性和团队协作效率的公司来说,这种经过大量项目验证的架构质量是可靠的。

4. 社区活跃度:国产开源的“现象级”标杆

  • 事实: 拥有超过 45,000 个 Star,且提供了专门的 DeepWiki 和 AI 说明文档,文档更新紧跟 AI 潮流。
  • 推断: 在 GitHub Java 生态中,这个星标数属于头部梯队。高星标数意味着庞大的用户基数和丰富的第三方教程。在国内环境下,活跃的社区不仅意味着 Bug 修复快,更意味着人才供给充足。企业使用 JeecgBoot 不必担心“招不到人”的问题,这大大降低了技术选型的风险。

5. 学习价值与潜在问题

  • 学习价值: 对于初中级开发者,研究 JeecgBoot 的代码生成器原理(基于数据库元数据逆向工程)和动态数据源处理是极佳的学习案例。它展示了如何通过抽象配置来驱动复杂的业务逻辑。
  • 潜在问题:
    • “黑盒”陷阱: 虽然生成代码无需手写,但一旦业务逻辑极其复杂,生成的代码可能难以维护,或者开发者为了绕过平台限制而写出“脏代码”。
    • AI 落地挑战: 描述中提到的“AI构建应用”目前仍处于探索期。大模型在处理严格数据一致性(如复杂的财务核算)时仍存在幻觉风险,JeecgBoot 的 AI 功能在关键业务场景下的可靠性仍需经过长时间的实战检验。

边界条件与不适用场景

尽管 JeecgBoot 功能强大,但它并非万能:

  • 不适用场景:
    • 高并发/高性能互联网核心: 对于需要极致性能优化、秒杀处理或复杂分库分表的 C 端核心业务,其通用的 ORM 和架构可能存在性能瓶颈。
    • 轻量级项目: 如果只是一个简单的展示型网站或微服务,引入 JeecgBoot 会显得过于重量级,造成“杀鸡用牛刀”。
    • 高度定制化算法: 如果系统的核心价值在于独特的算法模型而非数据管理,低代码平台的约束反而会限制开发。

快速验证清单

在决定投入生产环境前,建议执行以下验证:

  1. 生成代码可读性测试: 使用其在线生成器创建一个包含 10 个字段以上的业务表,检查生成的 Controller、Service 和 Vue 文件,评估团队是否能在不查阅文档的情况下理解并修改代码。
  2. AI 功能实效性测试: 在演示环境中测试“AI 聊天助手”,尝试通过自然语言修改一个具体的业务数据(如“把张三的状态改为

技术分析

JeecgBoot 深度技术分析报告

JeecgBoot 是一款基于代码生成器的企业级低代码平台。近年来,它积极拥抱 AI 技术,转型为“AI 低代码平台”。以下是对该项目的深度技术分析。


1. 技术架构深度剖析

技术栈与架构模式

JeecgBoot 采用经典的前后端分离架构,遵循微服务友好的设计原则。

  • 后端核心:基于 Spring Boot。数据持久层采用 MyBatis-Plus,这是其高效代码生成的基石。通过封装 BaseMapperBaseService,极大减少了 CRUD 代码。
  • 前端核心:提供 Vue 3 (基于 Ant Design Vue) 和 React (基于 Ant Design) 双版本。前端采用 Vite 构建工具,提升了开发体验。
  • 架构模式:单体应用与微服务架构并存。它通过 jeecg-boot-starter 模块化设计,使得核心功能(如数据权限、国际化、日志)可作为独立组件被引入,既支持快速开发的单体部署,也支持向 Spring Cloud 演进。

核心模块与关键设计

  • Online 代码生成器:这是系统的心脏。它通过读取数据库元数据,结合预置的模板(Freemarker/Velocity),一键生成前后端代码。
  • Online 表单构建器:无需编写代码,通过拖拽配置即可生成复杂的表单页面,支持复杂的校验逻辑和数据联动。
  • AI 智体模块:引入了 LLM(大语言模型)能力,集成了向量数据库用于 RAG(检索增强生成),以及 Agent 流程编排能力。

技术创新点

  • 全栈代码生成:不同于只生成后端 CRUD 的工具,JeecgBoot 生成的是包含 Vue 列表、表单、API 调用的完整业务页面。
  • 混合开发模式:它允许“低代码”与“手写代码”共存。生成的代码不绑定黑盒运行时,而是生成标准的源码供开发者修改,解决了低代码平台常见的“逻辑天花板”问题。

2. 核心功能详细解读

主要功能与场景

  • 快速 CRUD:适用于企业后台管理系统(ERP, OA, CMS, CRM)中 80% 的基础功能开发。
  • AI 助手:通过自然语言交互生成 SQL、修复 Bug 或生成业务逻辑代码。
  • 数据权限:基于 MyBatis-Plus 拦截器实现细粒度的数据权限控制,无需手写 SQL 过滤条件。

解决的关键问题

  • 重复劳动:消除了编写 Entity、Mapper、Service、Controller 以及前端 Vue 文件的机械性劳动。
  • 技术门槛:允许初级开发者通过配置完成复杂的表单交互和列表展示。

与同类工具对比

  • 对比 Spring Boot Admin:JeecgBoot 是业务开发脚手架,而 Admin 是监控工具。
  • 对比 RuoYi (若依):两者定位相似。JeecgBoot 的优势在于 Online 在线开发能力更强(无需重启服务即可配置新表单),且商业化支持更完善;若依则更轻量,代码风格更接近传统手写。
  • 对比 Mendix/OutSystems:JeecgBoot 是“代码优先”的生成器,生成的代码可读、可改;国外低代码平台通常是“模型驱动”,运行时绑定强,灵活性较低。

技术实现原理

  • 代码生成原理:通过 JDBC 获取数据库元数据(表名、字段、类型、注释),映射到 Java 对象,再注入模板引擎渲染代码。
  • Online 表单原理:将表单配置(JSON 格式)存储在数据库中。前端在运行时读取 JSON,通过动态渲染引擎生成 Vue/React 组件。

3. 技术实现细节

关键技术方案

  • MyBatis-Plus 深度集成:利用其 FieldStrategyLogicDelete 功能处理字段填充和逻辑删除。
  • Token 机制:基于 Redis 存储的 JWT (JSON Web Token),实现无状态认证和单点登录。
  • AI 集成:通过 SDK 接入 OpenAI 或其他兼容大模型,利用 LangChain 或类似框架进行 Prompt 管理和上下文维护。

代码组织结构

后端采用标准的分层结构:

  • jeecg-boot-base:核心基础模块(启动器、工具类、注解)。
  • jeecg-module-system:系统管理模块(用户、角色、菜单)。
  • jeecg-module-demo:示例代码模块。 这种结构通过 Maven BOM 进行依赖管理,确保版本一致性。

性能与扩展性

  • 性能瓶颈:Online 报表功能在处理百万级数据时可能存在 SQL 慢查询问题。
  • 解决方案:引入分页优化、针对特定报表建立索引、或使用 ClickHouse 等 OLAP 数据库替代传统 MySQL。

4. 适用场景分析

适合的项目

  • 企业内部管理系统:如 OA、审批流、进销存。
  • SaaS 产品原型:需要快速验证 MVP(最小可行性产品)的 B2B 软件。
  • 政府/事业单位项目:需求变更频繁,且对数据权限要求极高的场景。

不适合的场景

  • 高并发互联网应用:如秒杀、即时通讯。其通用的 CRUD 架构在高并发下需要大量修改才能满足性能要求。
  • 算法密集型应用:如大数据处理、图像识别服务。

集成方式与注意事项

  • Maven 依赖:建议引入 jeecg-boot-starter 而不是直接修改源码,以便未来升级。
  • 数据库兼容性:默认支持 MySQL/PostgreSQL/Oracle,若使用国产数据库(达梦、人大金仓),需注意方言配置。

5. 发展趋势展望

技术演进方向

  • Agent 化:从“辅助生成代码”向“自主执行任务”演进。未来可能通过对话直接修改数据库结构或部署应用。
  • 云原生:加强 Docker/Kubernetes (K8s) 的支持,提供一键部署到云端的 Helm Charts。

社区反馈与改进空间

  • 文档质量:虽然代码丰富,但部分高级功能的文档更新滞后于版本迭代。
  • AI 准确性:目前 AI 生成的代码仍需人工 Review,未来需通过 RAG 提高生成代码的可用率。

6. 学习建议

适合人群

  • 初中级 Java 开发者:能够快速理解企业级开发的“套路”。
  • 全栈初学者:通过生成的代码学习 Vue/React 与 Java 的交互方式。

学习路径

  1. 环境搭建:运行 jeecg-boot (后端) 和 jeecgboot-vue3 (前端)。
  2. 代码生成实践:创建一张数据库表,使用代码生成器生成代码,并分析生成的每一行代码。
  3. 二开实战:修改生成的页面,增加一个自定义按钮和后端接口,理解其请求流程。

实践建议

  • 不要依赖黑盒:务必阅读生成的代码,理解其原理,否则一旦生成器出 Bug,你将无法修复。

7. 最佳实践建议

正确使用方式

  • 规范数据库设计:表名和字段注释必须清晰,因为这是代码生成的唯一依据。
  • 覆盖而非修改:生成代码时,优先选择“覆盖”策略,将自定义业务逻辑写在 Service 的子类或单独的文件中,避免下次生成时被覆盖。

常见问题解决

  • 跨域问题:开发环境配置 Vue 的 proxy,生产环境配置 Nginx 反向代理。
  • 懒加载报错:确保后端 API 权限配置与前端路由菜单一致。

性能优化

  • SQL 优化:MyBatis-Plus 的 selectById 在字段过多时会有性能损耗,对于大表建议自定义 SQL 指定查询列。

8. 哲学与方法论:第一性原理与权衡

抽象层与复杂性转移

JeecgBoot 的核心哲学是 “约定优于配置”“元数据驱动”

  • 抽象层:它将“业务逻辑”抽象为“数据库元数据” + “UI 配置”。
  • 复杂性转移:它将运行时的复杂性(手写重复逻辑)转移到了构建时(代码生成模板维护)和元数据层(数据库设计)。这意味着,如果数据库设计糟糕,整个应用的质量将崩溃。

价值取向与代价

  • 取向开发效率 > 运行时灵活性。它默认认为大多数业务是标准的 CRUD。
  • 代价同质化。所有基于 JeecgBoot 开发的系统界面、交互逻辑甚至 URL 结构都高度相似,难以形成差异化的用户体验。此外,深度定制生成的代码可能导致无法跟随主版本升级。

工程范式与误用

  • 范式模型驱动开发 (MDD) 的变体。它试图通过数据模型定义软件。
  • 误用点:开发者容易陷入“配置地狱”。当业务逻辑极其复杂(如涉及复杂的分布式事务、状态机)时,强行用 Online 表单去配置,反而比手写代码更复杂、更难维护。

可证伪的判断

  1. 效率验证:对比 5 名开发者使用 JeecgBoot 与传统 Spring Boot 开发一个包含 20 张表的 CRM 系统。若前者耗时超过后者的 30%,则“低代码提升效率”的命题在此场景下失效。
  2. 维护性测试:随机选取一个由 JeecgBoot 生成的模块,修改数据库字段类型,测试重新生成代码后,手动编写的业务逻辑是否被意外覆盖或破坏。若破坏率 > 10%,则其“混合开发模式”存在缺陷。
  3. 性能基准:使用 JMeter 对生成的列表接口进行压测。若在 100 并发下响应时间 > 500ms(未优化 SQL),则说明其默认生成的 SQL 存在严重的 N+1 查询或全表扫描问题。

代码示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 示例1:使用JeecgBoot的AutoPOI功能导出Excel
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
import java.util.List;

public class ExportExcelExample {
    /**
     * 导出用户数据到Excel
     * @param userList 用户数据列表
     * @param fileName 导出文件名
     */
    public void exportUserExcel(List<User> userList, String fileName) {
        // 1. 设置导出参数标题表头
        ExportParams params = new ExportParams("用户列表", "用户信息");
        params.setType(ExcelType.XSSF); // 设置为xlsx格式
        
        // 2. 使用AutoPOI工具类导出
        Workbook workbook = ExcelExportUtil.exportExcel(params, User.class, userList);
        
        // 3. 输出到文件
        try (FileOutputStream fos = new FileOutputStream(fileName)) {
            workbook.write(fos);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 示例2:使用JeecgBoot的QueryGenerator动态查询
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/user")
public class UserController {
    @Autowired
    private IUserService userService;
    
    /**
     * 动态查询用户列表
     * @param user 查询条件实体
     * @param pageNo 页码
     * @param pageSize 每页数量
     */
    @RequestMapping("/list")
    public Result<?> queryPageList(User user, 
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
        // 1. 获取当前登录用户
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        
        // 2. 使用QueryGenerator生成查询条件
        QueryWrapper<User> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
        
        // 3. 执行分页查询
        Page<User> page = new Page<>(pageNo, pageSize);
        IPage<User> pageList = userService.page(page, queryWrapper);
        
        return Result.OK(pageList);
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 示例3:使用JeecgBoot的权限注解控制接口访问
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;

public class UserDeleteController extends JeecgController<User, IUserService> {
    /**
     * 删除用户需要特定权限
     * @param id 用户ID
     */
    @AutoLog(value = "用户管理-删除用户")
    @PreAuthorize("hasPermission('user', 'delete')")
    @DeleteMapping(value = "/delete/{id}")
    public Result<?> delete(@PathVariable String id) {
        userService.removeById(id);
        return Result.OK("删除成功!");
    }
}

案例研究

1:某大型物流供应链管理系统

1:某大型物流供应链管理系统

背景: 该物流公司原有系统基于传统SSH架构开发,随着业务扩张,系统代码冗余严重,新功能开发周期长,且难以维护。公司需要重构其核心的TMS(运输管理系统)和WMS(仓储管理系统),以支持日均十万级订单的处理。

问题: 开发团队面临大量重复的CRUD(增删改查)工作,代码规范不统一导致系统Bug频发。前后端分离开发效率低,缺乏统一的权限管理和代码生成机制,导致项目进度严重滞后。

解决方案: 团队决定引入JeecgBoot作为底层开发框架。利用其Online在线表单开发功能,通过拖拽方式快速构建了复杂的业务单据页面。使用JeecgBoot的代码生成器,针对数据库表自动生成前后端代码,并基于其微服务版本搭建了分布式架构。

效果: 开发效率提升了60%以上,原本需要3个月开发周期的模块在1个月内即上线。系统稳定性显著增强,统一的权限管理(支持数据权限)解决了数据隔离问题,成功支撑了业务量的快速增长。


2:智慧园区物联网综合管理平台

2:智慧园区物联网综合管理平台

背景: 某科技园区致力于打造数字化管理平台,需要将门禁、能耗、停车、安防等多个异构子系统的数据汇聚,并进行统一的大屏展示和业务流程管理。

问题: 涉及的设备种类繁多,接口协议复杂,需要开发大量的数据采集接口和配置管理后台。如果从零开始搭建,仅基础的后台管理系统和权限模块就需要耗费大量时间,且难以快速响应园区管理方频繁变更的报表需求。

解决方案: 采用JeecgBoot作为快速开发平台,利用其强大的低代码能力快速搭建了设备管理、租户管理和缴费中心等基础模块。通过JeecgBoot的Online报表功能,实现了业务人员自助配置统计报表,无需开发人员介入。同时,利用其SpringBoot集成能力,快速对接了第三方物联网硬件接口。

效果: 项目在2个月内完成了从0到1的交付。低代码特性的应用使得后期园区新增业务流程(如会议室预定)时,仅需配置即可上线,极大降低了运维成本,获得了园区管理方的高度认可。


3:医疗行业SaaS ERP系统

3:医疗行业SaaS ERP系统

背景: 一家医疗信息化初创公司计划开发一套面向中小型诊所的SaaS ERP系统,包含进销存、会员管理和电子病历功能。初创团队规模小,需要在有限资源下快速完成产品迭代并推向市场。

问题: 团队主要专注于医疗业务逻辑的实现,不希望将大量精力浪费在通用的用户管理、菜单权限、日志审计等基础功能的开发上。同时,系统需要支持多租户架构,技术实现难度较大。

解决方案: 全站基于JeecgBoot进行构建。直接使用框架内置的RBAC权限体系和数据权限功能,省去了基础模块的开发时间。利用JeecgBoot的代码生成器,快速生成了药品库存、处方单据等核心业务模块的前后端代码,并在此基础上进行业务逻辑定制。

效果: 仅凭3名后端开发人员和2名前端开发人员,在4个月内完成了包含50+张核心业务表的完整ERP系统开发。系统上线后运行稳定,框架的高扩展性使得团队能够快速根据客户反馈进行功能迭代,帮助公司迅速占领了区域市场。


对比分析

与同类方案对比

维度jeecgbootRuoYi (若依)Pig
技术栈Spring Boot 2/3 + Vue 3/React + Ant DesignSpring Boot + Vue 3/React + Element PlusSpring Boot 3 + Vue 3 + TypeScript
代码生成器强大,支持在线设计表单、代码生成支持单表、树表生成,功能较全基于MyBatisPlus,支持多表关联生成
低代码能力内置Online低代码开发平台,零代码较弱,主要依赖代码生成较弱,主要依赖代码生成
性能中等,依赖数据库查询优化中等,常规CRUD性能良好较优,采用微服务架构,扩展性强
易用性文档丰富,社区活跃,上手快文档详细,适合初学者需要一定的微服务经验
成本开源免费,商业版需付费开源免费,无强制收费开源免费,无强制收费
适用场景中大型企业应用、快速开发中小型项目、后台管理微服务架构项目

优势分析

  • 优势1:低代码开发平台强大,支持在线表单设计和报表生成,大幅减少开发工作量。
  • 优势2:社区活跃,文档完善,国内用户基数大,问题容易找到解决方案。
  • 优势3:代码生成器灵活,支持多种模板,可自定义生成逻辑。

不足分析

  • 不足1:性能优化依赖数据库查询,复杂业务场景下可能需要手动优化SQL。
  • 不足2:低代码功能虽然强大,但灵活性有限,复杂定制仍需二次开发。
  • 不足3:商业版功能收费较高,可能增加长期使用成本。

最佳实践

最佳实践指南

实践 1:规范代码生成策略

说明: JeecgBoot 的核心优势在于其强大的代码生成器。最佳实践要求开发者不应盲目生成所有代码,而应根据业务逻辑谨慎选择模板。避免生成后直接提交而不进行人工审查,这会导致代码库充斥着大量冗余和低质量的代码。应当将生成的代码视为脚手架,必须进行业务逻辑的优化和代码风格的统一。

实施步骤:

  1. 在数据库设计阶段,严格遵循 Jeecg 的命名规范(如表名前缀、字段注释),以确保生成的代码准确。
  2. 在线表单配置中,精确设置查询条件、表单类型和校验规则,减少生成后的二次修改工作量。
  3. 生成代码后,务必进行 Code Review,剔除未使用的导入和示例代码,调整异常处理逻辑。
  4. 将自定义的通用逻辑沉淀为自定义代码模板,避免重复劳动。

注意事项: 不要修改生成的核心基类代码,应通过继承或重写方法来扩展功能,以便于后续版本升级时重新生成代码。


实践 2:合理利用权限注解与数据权限

说明: 系统安全是企业级应用的基石。JeecgBoot 提供了基于 Shiro 的权限管理和数据权限机制。最佳实践是不仅在控制器层使用 @Permission 注解进行菜单和按钮级别的权限控制,还要在 Service 层利用 SQL 注入机制实现细粒度的数据行级权限控制,确保用户只能访问其被授权的数据。

实施步骤:

  1. 在系统管理模块中配置角色和权限,确保权限标识与代码中的 @Permission 注解 value 值一致。
  2. 对于需要数据隔离的接口,使用 @PermissionData 注解,或通过 SysPermissionRule 配置 SQL 片段。
  3. 在前端组件中,利用 v-has 指令控制按钮的显示与隐藏,实现 UI 层面的权限拦截。
  4. 定期审查权限配置,移除过期的或过于宽泛的权限设置。

注意事项: 数据权限的 SQL 拼接较为复杂,配置不当可能导致 SQL 注入风险或性能问题,务必在测试环境验证生成的 SQL 语句。


实践 3:优化前端大屏与复杂表单性能

说明: JeecgBoot 默认集成了 Ant Design Vue,功能丰富但体积较大。在开发包含大量数据展示的报表或复杂表单时,如果不进行优化,会导致页面加载缓慢和操作卡顿。最佳实践包括按需引入组件、使用虚拟滚动技术以及合理使用缓存。

实施步骤:

  1. 使用 JeecgListPageuse 属性按需引入 Ant Design Vue 组件,减少打包体积。
  2. 对于数据量超过 500 条的列表,务必开启虚拟滚动功能。
  3. 利用 keep-alive 缓存主要业务页面的状态,避免重复渲染和请求。
  4. 复杂表单采用分步或分 Tab 提交的方式,减少单次 DOM 渲染压力。

注意事项: 避免在 v-for 中使用复杂的计算属性或函数,这会严重拖慢渲染速度。


实践 4:遵循前后端分离接口规范

说明: 为了保证系统的可维护性和前后端联调效率,必须严格遵守 JeecgBoot 定义的接口返回格式。统一使用 Result 对象进行响应,并正确处理异常。不要在 Controller 中直接返回 JSON 对象或 void,这会破坏前端拦截器的统一处理逻辑。

实施步骤:

  1. 所有 Controller 方法返回值统一为 Result<?>
  2. 使用 @AutoLog 注解记录关键操作日志,便于审计和问题排查。
  3. 异常处理不要直接 try-catch 吞掉,应抛出业务异常交由全局异常处理器 JeecgBootExceptionHandler 统一返回格式。
  4. 接口路径命名应遵循 RESTful 风格或模块化前缀(如 /sys/user/...)。

注意事项: 敏感数据(如密码、身份证号)禁止直接返回给前端,即便前端未展示,也会造成安全隐患。


实践 5:自定义字典与国际化配置

说明: JeecgBoot 提供了强大的字典管理功能。最佳实践是对于固定的下拉选项、状态值等,必须使用系统字典表进行维护,而不是硬编码在前端或后端枚举中。同时,结合国际化机制,确保系统能够支持多语言切换。

实施步骤:

  1. 在“字典管理”中维护通用字典项,如“性别”、“状态”等。
  2. 前端使用 j-dict-selectj-dict-tag 组件直接通过字典 code 获取数据。
  3. 后端通过 DictAspect 切面或 DictUtils 工具类自动翻译字典文本。
  4. 将前端提示文案抽取到国际化文件中,使用 `{{$t(‘key’)}`` 替代硬编码文本

性能优化建议

性能优化建议

优化 1:数据库查询优化与SQL拦截器增强

说明: JeecgBoot基于MyBatis,若未正确配置或编写SQL,极易出现N+1查询问题或全表扫描。特别是在处理一对多关系时,缺乏FetchType.LAZY配置或未使用MyBatis-Plus的@TableName注解进行字段筛选,会导致查询大量无用数据,拖慢接口响应速度。

实施方法:

  1. 开启SQL性能监控: 在application.yml中开启MyBatis-Plus的SQL性能分析插件(p6spy),定位耗时超过指定阈值(如1000ms)的SQL语句。
  2. 字段裁剪: 在Mapper查询或Service层调用时,使用select方法指定具体字段,避免频繁使用select *
  3. 分页优化: 确保所有列表查询必须使用分页插件(Pagination),并强制要求查询条件中包含索引字段。
  4. 批量操作: 将循环单条插入改为saveBatch,并调整sqlSessionFactorydefaultBatchSize参数(如调整为1000)。

预期效果: 数据库层响应时间降低30%-50%,显著减少慢日志产生。


优化 2:前端资源构建与按需加载策略

说明: JeecgBoot前端使用Vue 2/3 + Ant Design Vue。默认开发模式下构建体积较大,且首屏加载可能包含大量未使用的组件代码。若未配置路由懒加载和组件按需引入,会导致首屏白屏时间(FCP)过长。

实施方法:

  1. 路由懒加载: 确保所有路由定义均使用动态import语法(如component: () => import('@/views/system/User.vue')),避免同步导入。
  2. 组件按需引入: 配置babel-plugin-import或Vite的自动导入插件,仅加载使用的Ant Design Vue组件,移除全量引入。
  3. Gzip压缩: 在Nginx或打包工具(如Webpack/Vite)中开启Gzip静态资源压缩。
  4. CDN分离: 将vueaxiosant-design-vue等体积较大的基础库通过CDN外部链接引入,减少打包体积。

预期效果: 首屏加载时间减少40%,打包体积减少约30%。


优化 3:后端缓存策略重构(Redis)

说明: 系统中字典表、权限配置、网关路由等数据变更频率低,但读取频率极高。若每次请求都直接查询数据库,会造成巨大的数据库连接资源浪费。JeecgBoot虽有缓存机制,但往往未被充分利用。

实施方法:

  1. 注解驱动缓存: 在Service层方法上使用@Cacheable@CacheEvict注解,针对字典表(sys_dict)和部门表(sys_depart)进行缓存。
  2. 本地缓存结合: 对于极度高频且数据量小的配置,考虑使用Guava Cache或Caffeine作为一级缓存(L1),Redis作为二级缓存(L2),减少Redis网络IO。
  3. 缓存预热: 系统启动时,利用@PostConstructCommandLineRunner主动加载核心配置数据到缓存中。

预期效果: 高并发场景下接口QPS提升200%以上,数据库CPU负载下降明显。


优化 4:异步处理与解耦(消息队列)

说明: 业务中常见的日志记录、消息通知、Excel导出等操作属于耗时且非核心流程的IO操作。若在主线程(HTTP请求线程)中同步执行,会阻塞用户请求的响应,导致用户感知卡顿。

实施方法:

  1. Spring异步线程池: 对于简单的日志记录或发送邮件,使用@Async注解,并配置专门的ThreadPoolTaskExecutor线程池。
  2. 消息队列集成: 对于复杂的业务解耦(如大批量数据导入、生成复杂报表),引入RabbitMQ或Kafka。将"提交任务"和"执行任务"分离,前端通过轮询或WebSocket获取任务结果

学习要点

  • JeecgBoot 是一款基于代码生成器的低代码开发平台,通过在线表单设计器快速生成业务代码,显著提升开发效率。
  • 采用前后端分离架构,前端基于 Ant Design Vue,后端集成 Spring Boot,支持微服务部署,适应现代企业级应用需求。
  • 内置强大的代码生成引擎,支持单表、树表、主子表等多种业务场景的代码模板,减少重复开发工作。
  • 提供完善的权限管理、数据字典、在线报表等通用功能模块,可直接复用于企业信息化系统。
  • 支持多数据源配置和分布式事务处理,满足复杂业务场景下的数据一致性和性能需求。
  • 社区活跃,文档齐全,提供丰富的技术支持和插件生态,适合快速搭建企业级管理系统。
  • 遵循 Apache 2.0 开源协议,可免费商用,适合中小团队或企业快速构建原型或生产级应用。

学习路径

学习路径

阶段 1:环境搭建与快速体验

学习内容:

  • JeecgBoot 的发展历程、核心架构(前后端分离)与生态体系
  • 开发环境配置(JDK 1.8+, Node.js, Redis, Nginx, Maven/Gradle)
  • 获取源码并成功启动本地项目(后端 JeecgSystemApplication、前端 Ant Design Vue)
  • 熟悉官方演示示例,体验基础的在线报表、表单构建功能

学习时间: 3-5天

学习资源:

  • JeecgBoot 官方文档
  • JeecgBoot 官方 GitHub Wiki
  • B站搜索:JeecgBoot 环境搭建教程

学习建议:

  • 建议优先阅读官方文档的“快速开始”部分,不要一开始就深入代码细节。
  • 确保本地环境能够无报错运行,这是后续学习的基石。
  • 尝试在演示系统中操作一下“在线表单”和“在线报表”,直观感受低代码平台的强大。

阶段 2:核心功能掌握与低代码开发

学习内容:

  • Online 在线开发:深入理解 Online 表单开发(Online 报表、Online 表单、Online 拦截规则)
  • 代码生成器:利用数据库表结构一键生成前后端 CRUD 代码,并熟悉生成的代码结构
  • UI 组件库:掌握 Ant Design Vue 的常用组件使用,以及 JeecgBoot 自封装的高级组件(如 JDictSelect、JUpload 等)
  • 权限体系:理解用户、角色、菜单、部门的管理逻辑及数据权限控制

学习时间: 2-3周

学习资源:

  • JeecgBoot 官方文档 - Online 开发指南
  • Ant Design Vue 官方文档
  • 社区实战视频教程

学习建议:

  • 不要只看不动手,自己设计一个简单的数据库表(如“学生信息管理”),尝试使用代码生成器生成功能并运行。
  • 重点学习 Online 表单的配置技巧,这是 JeecgBoot 区别于其他框架的核心竞争力,能极大提升开发效率。
  • 熟悉生成的 Vue 页面结构和 Controller/Service/Mapper 层的规范。

阶段 3:后端深入与业务逻辑扩展

学习内容:

  • 框架底层技术栈:Spring Boot 2.x、Spring Security (Shiro)、MyBatis-Plus (MP)
  • JeecgBoot 核心模块:通用增删改查接口、日志处理、接口幂等性设计、文件上传下载
  • 自定义开发:在生成代码的基础上,编写复杂的业务逻辑、自定义 SQL、事务管理
  • 系统扩展:自定义校验器、自定义字典、自定义接口拦截器

学习时间: 3-4周

学习资源:

  • MyBatis-Plus 官方文档
  • Spring Boot 官方参考文档
  • JeecgBoot 源码阅读(重点关注 jeecg-boot-base-corejeecg-module-system

学习建议:

  • 此时需要具备扎实的 Java 基础。重点研究 MyBatis-Plus 的条件构造器和分页插件在 Jeecg 中的应用。
  • 尝试修改生成的 Controller 接口,添加复杂的业务逻辑,并使用 Postman 进行接口测试。
  • 学会阅读源码中的 JeecgControllerJeecgServiceImpl,理解通用父类封装了哪些共性功能。

阶段 4:前端进阶与性能优化

学习内容:

  • Vue 生态深入:Vuex 状态管理、Vue Router 路由守卫、Mixins 混入
  • 前端架构:JeecgBoot 前端目录结构分析、路由配置与菜单动态生成机制
  • 高级功能:大屏设计与集成、自定义主题、Excel 导入导出复杂定制
  • 性能优化:Webpack 配置优化、前端缓存策略、组件懒加载

学习时间: 2-3周

学习资源:

  • Vue.js 官方文档
  • JeecgBoot 前端源码分析博客
  • Ant Design Vue 高级组件文档

学习建议:

  • 重点理解前端如何通过 API 调用后端接口,以及全局的 HTTP 拦截器是如何处理 Token 和错误码的。
  • 学习如何将现有的 Vue 组件封装成通用的业务组件。
  • 如果涉及大屏展示,学习 DataV 或 ECharts 在 JeecgBoot 中的集成方式。

阶段 5:架构精通与源码定制

学习内容:

  • 微服务架构:了解 JeecgBoot Cloud 版本,掌握 Spring Cloud Alibaba (Nacos, Sentinel, Gateway) 的集成
  • 源码级定制:深入理解 JeecgBoot 的启动流程、Bean 加载机制、AOP

常见问题

1: JeecgBoot 是什么?它主要解决了什么问题?

1: JeecgBoot 是什么?它主要解决了什么问题?

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源了核心代码(基于 Apache 2.0 协议),主要解决 Java 开发中重复性高、效率低下的问题。通过在线代码生成器,它可以快速生成单表、一对多、树形等功能的 CRUD 代码,极大地提升了企业级应用(如 ERP、OA、大屏可视化等)的开发效率,让开发者能专注于核心业务逻辑。


2: JeecgBoot 的技术栈主要包含哪些?

2: JeecgBoot 的技术栈主要包含哪些?

A: JeecgBoot 采用主流的企业级开发技术栈,具体如下:

  • 后端:基于 Spring Boot 2.x/3.x,使用 MyBatis-Plus 作为 ORM 框架,集成了 Spring Security(用于权限认证)和 JWT(用于令牌管理)。数据库支持 MySQL、PostgreSQL、Oracle 等主流数据库。
  • 前端:主要提供两套版本,分别是基于 Vue 3 + Ant Design Vue 4.x 的版本,以及基于 Vue 2 + Ant Design Vue 1.x 的版本。
  • 核心特性:内置了代码生成器、积木式表单设计器、报表设计器(如 JimuReport)等生产力工具。

3: 对于新手,如何快速运行 JeecgBoot 项目?

3: 对于新手,如何快速运行 JeecgBoot 项目?

A: 运行 JeecgBoot 需要配置本地环境并执行以下步骤:

  1. 环境准备:确保安装了 JDK (1.8+ 或 17+),Node.js (推荐 14 或 16+,Vue3 版本需要更高版本),以及 MySQL 数据库 (5.7+)。
  2. 后端启动
    • 下载源码并解压。
    • 执行 sql 目录下的数据库脚本文件(如 jeecgboot-mysql-5.7.sql)。
    • 修改 application.yml 中的数据库连接配置(账号、密码、URL)。
    • 在 IDEA 中运行 JeecgBootApplication.java 主类。
  3. 前端启动
    • 进入前端目录(如 ant-design-vue-jeecg)。
    • 执行命令 npm installyarn install 安装依赖。
    • 执行命令 npm run serve 启动开发服务器。
    • 浏览器访问 http://localhost:3100(默认端口),后台账号通常为 admin,密码为 123456

4: JeecgBoot 生成的代码可以商用吗?关于开源协议有什么限制?

4: JeecgBoot 生成的代码可以商用吗?关于开源协议有什么限制?

A: JeecgBoot 的核心代码开源协议为 Apache License 2.0

  • 商用权限:该协议允许商业使用。这意味着您可以使用 JeecgBoot 开发闭源的商业项目,或者将其作为企业内部系统的基础框架,而无需开源您的业务代码。
  • 注意事项:虽然核心代码宽松,但 JeecgBoot 集成的某些特定插件或子模块可能采用不同的协议(部分可能涉及收费或保留版权要求)。在使用特定的付费组件(如高级报表功能或特定的在线服务)时,建议查阅具体的子模块协议说明。

5: 如何使用 JeecgBoot 的代码生成器(Online Code Generator)?

5: 如何使用 JeecgBoot 的代码生成器(Online Code Generator)?

A: 代码生成是 JeecgBoot 的核心功能,主要流程如下:

  1. 数据库建表:在数据库中创建一张物理表,并编写必要的注释。
  2. 在线配置:登录系统,进入菜单“在线开发” -> “Online表单开发”。
  3. 导入表单:点击“导入”,系统会自动读取数据库中的表结构。
  4. 功能配置:在配置页面,设置页面类型(单表、树表、主子表)、表单显示类型(下拉框、日期、上传等)、查询条件以及必填校验规则。
  5. 生成代码:配置完成后,点击“生成代码”。系统会生成一个压缩包,包含 Java Controller、Service、Mapper、Vue 页面等代码。
  6. 代码集成:将生成的代码解压并放入项目的相应目录中,重启后端服务即可看到新开发的菜单功能。

6: JeecgBoot 与若依(RuoYi)框架相比有什么区别?

6: JeecgBoot 与若依(RuoYi)框架相比有什么区别?

A: 两者都是优秀的 Java 快速开发平台,主要区别在于侧重点:

  • 代码生成方式:JeecgBoot 强调“Online”在线化,其 Online 表单开发功能非常强大,允许用户在网页上通过拖拽和配置直接生成表单和页面,甚至不需要重新部署即可改变部分逻辑;若依则更偏向于传统的“代码生成”模式,即配置后下载代码模板到本地进行二次开发。
  • 技术深度:JeecgBoot 在低代码组件的封装上更为激进,

思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**: 在 JeecgBoot 的代码生成器配置中,如何通过修改数据库表的设计(如字段注释、字段类型),让生成的代码包含“必填项”校验规则?

提示**: 关注代码生成器是如何读取数据库元数据的,特别是 META 信息中的注释字段。


实践建议

基于 JeecgBoot 作为“AI低代码平台”的定位及其技术架构(通常基于 Spring Boot + Vue/React),以下是针对实际开发场景的 7 条实践建议:

1. 严格把控代码生成后的二次开发规范

JeecgBoot 的核心优势在于代码生成器,但这也是最大的陷阱所在。

  • 实践建议:使用生成器创建代码后,严禁直接修改生成的 Base 类(如 Entity、Mapper)。所有的业务逻辑扩展应写在 Service 层或扩展类中。如果必须修改生成的页面或接口,请利用 Git 分支管理,标记清楚哪些是“自动生成”的文件,以便在表结构变更重新生成代码时,能够通过合并工具轻松覆盖,而不是丢失手写的业务逻辑。
  • 常见陷阱:频繁修改生成器产出的 CRUD 基础代码,导致后续数据库表字段变更时无法重新生成,最终只能被迫手写维护,丧失了低代码的效率优势。

2. AI 助手与知识库的“数据清洗”先行

既然平台强调 AI 应用和知识库,数据的质量直接决定了 AI 的回答质量。

  • 实践建议:在构建 AI 知识库之前,务必对上传的企业文档进行预处理。去除无用的页眉页脚、乱码和过时的信息。对于结构化数据(如数据库表),利用 JeecgBoot 的 AI 对话式业务操作 功能时,应先配置好清晰的 API 接口描述,以便 AI 准确理解如何调用后端服务。
  • 常见陷阱:直接将杂乱无章的文档丢给 RAG(检索增强生成)系统,导致 AI 回答不准确或产生幻觉,导致用户对平台能力失去信心。

3. 权限控制的细粒度配置

JeecgBoot 提供了强大的权限管理(菜单、按钮、数据权限),但在实际场景中常被忽视。

  • 实践建议:充分利用 数据权限 功能。在设计多租户或部门级应用时,不要仅依赖前端隐藏按钮。必须在后端配置 SQL 权限规则(如:只能查看本部门数据),确保接口层面的安全。对于 AI 流程编排,要严格限制不同角色对“提示词”和“工具调用”的权限,防止普通用户越权调用高成本的 AI 模型。
  • 常见陷阱:只配置了前端菜单权限,忽略了接口拦截,导致用户可以通过 Postman 直接调用敏感接口。

4. AI 流程编排的模块化设计

平台包含 AI 流程编排功能,这类似于低代码的 Logic 层。

  • 实践建议:不要将所有 AI 逻辑写在一个巨大的流程图中。将常用的 AI 能力(如“文档总结”、“情感分析”、“SQL 生成”)封装为独立的子流程或 MCP 插件。这样在构建复杂业务流时,可以像搭积木一样复用。
  • 常见陷阱:流程编排过于耦合,一旦某个 AI 节点(如 OCR 识别)接口变动,需要修改所有相关的业务流,维护成本极高。

5. 前后端分离部署下的静态资源管理

JeecgBoot 前端通常基于 Vue3,且集成了 AI 聊天组件,这可能涉及较大的静态资源加载。

  • 实践建议:在生产环境中,务必开启 Nginx 的 Gzip 压缩,并配置好 CDN 缓存策略。特别是针对 AI 聊天界面涉及的流式传输(SSE)配置,要确保 Nginx 的代理超时时间设置合理,避免长连接被中断。
  • 常见陷阱:忽略了反向代理的 Buffer 设置,导致 AI 流式输出的文字无法实时显示,而是要等待全部生成完才一次性显示,严重影响用户体验。

6. 定制化开发与原声功能的解耦

企业级应用往往需要深度定制。

  • 实践建议:建立自己的独立业务模块,不要将代码直接提交到 JeecgBoot 的核心模块中。利用 Maven 的多模块结构,将你的核心业务代码与框架代码物理分离。升级 JeecgBoot 版本时

引用

注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。



站内链接

相关文章