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,106 (+9 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 是一款基于 AI 的企业级低代码开发平台,旨在通过自动化生成和智能化功能,显著提升企业开发效率并降低成本。

以下是核心内容总结:

1. 平台定位与技术栈 JeecgBoot 是一个基于 Spring Boot 3.5.5Vue 3Spring Cloud Alibaba 构建的现代化平台。它将代码生成器、可视化开发和 AI 能力融为一体,为企业提供一站式的软件解决方案。

2. 核心能力

  • 强大的代码生成器:平台内置基于 Maven 的代码生成器(CodeGenerateUtil),支持前后端代码一键生成,开发者无需手写大量基础代码,在保证灵活性的同时极大节省时间。
  • AI 应用平台:涵盖 AI 应用构建、AI 模型管理、聊天式业务操作、AI 助手、知识库管理、AI 流程编排、MCP 及插件系统等功能,助力企业快速集成和部署 AI 应用。

3. 开发模式 JeecgBoot 提供三种主要开发方式:

  • 代码生成:利用生成器快速构建基础框架。
  • 低代码可视化开发:通过图形化界面进行业务配置。
  • AI 辅助开发:结合 AIGC 技术优化开发流程。

4. 社区热度 该项目在 GitHub 上备受欢迎,目前星标数已超过 4.5万

总结:JeecgBoot 通过“代码生成 + 低代码 + AI”的组合模式,让企业能以更低的成本和更高的灵活性,快速交付复杂的业务系统和 AI 应用。


评论

总体评价

JeecgBoot 是目前国内最具影响力的企业级低代码开发平台之一,它成功地将“代码生成器”与“主流技术栈”解耦,并率先尝试将生成式AI(LLM)集成到业务流编排中。对于追求高交付效率且希望保留深度定制能力的软件外包团队或企业IT部门而言,它是目前平衡“不写代码”与“不完全被平台绑定”的最佳折中方案。

深入评价维度

1. 技术创新性:从“模板生成”到“AI编排”的进化

  • 事实:JeecgBoot 核心在于其强大的在线代码生成器(Online Code Generator),支持单表、树表、主子表等主流业务模型的一键生成(前后端代码、菜单、权限)。最新版本引入了 AI 功能,涵盖 AI 助手、知识库、MCP(模型上下文协议)及插件体系。
  • 推断:其最大的技术创新在于**“元数据驱动的代码生成”**。不同于传统低代码平台基于黑盒引擎运行(难以Debug),JeecgBoot 生成的是基于 Spring Boot + Vue3 的标准人类可读代码。这解决了低代码平台最大的痛点——上线后的维护与扩展难题。
  • AI 融合:它不仅停留在“用 ChatGPT 写代码”的层面,而是试图构建**“聊天式业务操作”**(ChatGPT 风格的 ERP 交互),将 LLM 作为业务逻辑的调度层,这是对传统 B/S 模式交互的一种大胆探索。

2. 实用价值:降本增效的“杀手级”应用

  • 事实:描述中明确提到“显著提升效率节省成本,又不失灵活”,星标数 4.5万+ 证明了其市场接受度。
  • 推断:其实用价值体现在CRUD(增删改查)开发的极致标准化。在企业管理系统(OA、ERP、CRM、CMS)开发中,约 70%-80% 的代码是重复的表单操作。JeecgBoot 通过配置数据源、表单模板和查询逻辑,将这部分工作量压缩至分钟级。
  • 场景广度:特别适合作为企业内部中后台系统的脚手架。其内置的权限体系(Shiro/Security)、数据字典、多租户支持,使得开发者可以直接进入业务逻辑开发,跳过基础设施搭建阶段。

3. 代码质量与架构设计

  • 事实:采用前后端分离架构,后端基于 Spring Boot(Mybatis-plus),前端支持 Vue2 和 Vue3(Ant Design Vue)。
  • 推断
    • 架构设计:架构成熟且稳健,符合国内 Java 开发的行业标准。它采用了模块化设计(jeecg-boot 作为核心,jeecgboot-vue3 作为前端),虽然耦合度较高,但保证了开箱即用的便利性。
    • 代码规范:生成的代码结构清晰,符合阿里巴巴 Java 开发手册规范。但由于历史包袱,部分老代码可能存在 XML 配置繁琐的问题。
    • 文档完整性:拥有完善的 README 和配套文档(如 README-AI.md),降低了上手门槛,但部分高级 AI 功能的文档可能尚在迭代中。

4. 社区活跃度与生态

  • 事实:GitHub 星标数超过 4.5 万,拥有多个 README 变体及详细的源码结构说明。
  • 推断:JeecgBoot 拥有国内最活跃的低代码开发社区之一。活跃的社区意味着大量的第三方插件踩坑经验。对于遇到问题的开发者来说,在 CSDN 或掘金上几乎能找到 JeecgBoot 相关的解决方案,这种“隐性生态”是其核心竞争力之一。

5. 学习价值与借鉴意义

  • 推断:对于初级开发者,它是学习企业级权限设计(RBAC)、动态表单渲染前后端交互规范的绝佳范本。
  • 对于架构师,JeecgBoot 提供了一个**“平台型产品”**的演进思路:如何从一个简单的代码生成器,逐步演变为包含 AI、低代码编排、移动端适配的综合平台。其“Online 报表”功能展示了如何通过元数据配置实现复杂的 SQL 动态拼接,极具参考价值。

6. 潜在问题与改进建议

  • 定制化陷阱:虽然生成代码可修改,但一旦修改,后续重新生成代码时极易产生冲突(Merge Hell)。建议加强“差异化代码比对与合并”的工具支持。
  • AI 落地务实性:描述中提到的 AI 流程编排和知识库,在实际私有化部署中面临向量数据库搭建成本大模型微调成本的问题。对于中小企业,这些高大上的 AI 功能可能因算力限制而沦为摆设。
  • 性能瓶颈:基于反射和动态 SQL 的“Online 在线表单”功能,在数据量达到千万级或高并发场景下,性能往往不如手写优化的 SQL,需要开发者具备深入底层进行性能调优的能力。

7. 与同类工具对比优势

  • 对比 React/Angular 等纯前端框架:JeecgBoot 提供了完整的后端解决方案,不仅是 UI 库。
  • 对比 JHipster:JeecgBoot 更符合国内开发习惯(

技术分析

JeecgBoot 技术深度分析报告

基于您提供的 GitHub 仓库信息(jeecgboot/JeecgBoot)及其描述,这是一个基于 Java 的企业级 AI 低代码开发平台。它不仅继承了传统快速开发平台(RAD)的特性,更在近期版本中深度融合了 AI 能力(如大模型集成、知识库、流程编排)。

以下是对该项目的全方位深度分析。


1. 技术架构深度剖析

技术栈与架构模式

JeecgBoot 采用了经典的前后端分离架构,遵循微服务友好的设计原则,但在单体应用层面保持了极高的内聚性。

  • 后端核心:基于 Spring Boot。数据持久层通常采用 MyBatis-Plus,这是其实现“代码生成”和“通用 CRUD”的基石。权限控制使用 Spring SecurityApache Shiro(视版本而定,通常已转向 Spring Security + JWT)。
  • 前端核心:主要提供 Vue 3 (Vite/Ant Design Vue) 版本,保留了 Vue 2 版本以维护老项目。
  • 架构模式
    • 分层架构:Controller -> Service -> Mapper,标准的三层架构。
    • 模板方法模式:在代码生成器和基类控制器中大量使用,定义骨架,子类填充细节。
    • 策略模式:用于支持多种数据库(MySQL, Oracle, PostgreSQL, SQL Server 等)的动态切换。

核心模块与关键设计

  1. Online 低代码表单:这是 JeecgBoot 的灵魂。通过数据库元数据解析,动态构建表单配置,实现了无需编写前端代码即可生成复杂的增删改查(CRUD)界面。
  2. 代码生成器:基于数据库表结构,利用 Freemarker 或 Beetl 模板引擎,一键生成前后端代码。它不仅仅是简单的 CRUD 生成,还支持树表、主子表等复杂业务逻辑。
  3. AI 智体模块:这是最新的架构演进。通过集成 LangChain 或类似框架,将 LLM(大语言模型)能力引入系统。架构上包含:Prompt 管理、知识库(RAG)、模型管理、Agent 编排。

技术亮点与创新点

  • 泛型 CRUD 设计:通过 JeecgControllerServiceImpl 基类,利用 Java 泛型和反射机制,将 80% 的单表操作代码抽象化,开发者只需定义实体,无需写 Mapper XML。
  • 积木式组件:前端封装了大量高级组件(如 SelectUser、SelectDept、ImageUpload),这些组件与后端的 Dict(数据字典)和 Permission 系统深度打通,实现了“配置即开发”。
  • AI + 低代码融合:不仅仅是生成代码,更进一步实现了“聊天式操作”。例如,用户可以通过自然语言描述需求,AI 辅助配置流程或生成 SQL,这是对传统低代码平台的降维打击。

架构优势分析

  • 开发效率的极致提升:通过元数据驱动和代码生成,将传统 Java Web 开发的效率提升了 5-10 倍。
  • 技术栈的统一性:前端 Vue3 + 后端 Spring Boot 是目前国内企业级开发的主流栈,降低了团队的学习成本和招聘难度。
  • 扩展性强:由于基于标准的 Spring Boot,开发者可以随时跳出低代码的限制,手写代码进行深度定制,解决了传统低代码平台“能力天花板”低的问题。

2. 核心功能详细解读

主要功能与使用场景

  1. 智能代码生成
    • 场景:新项目启动、系统迭代中的新模块开发。
    • 功能:连接数据库,选择表,设置模板(主子表、树表),一键生成 Vue 页面、Java API、SQL 脚本。
  2. Online 在线表单/报表
    • 场景:配置类功能(如系统参数、字典管理)、临时性数据查询、简单的审批流。
    • 功能:拖拽式表单设计、在线配置查询条件、配置列宽、字典值翻译。
  3. AI 应用平台
    • 场景:企业知识库问答、智能客服、辅助编程。
    • 功能:上传文档构建知识库,通过 API 接入大模型(如 OpenAI, DeepSeek, 通义千问),通过可视化的流程编排设计 Agent 逻辑。
  4. 微服务支撑
    • 场景:大型企业分布式系统。
    • 功能:提供 Spring Cloud Alibaba 的集成方案,支持 Nacos、Sentinel 等。

解决的关键问题

  • 重复劳动:消灭了简单的 CRUD 代码编写。
  • 前端门槛:让不懂前端(Vue/React)的后端开发者也能快速搭建管理界面。
  • AI 落地难:通过内置的 AI 模块,降低了企业接入 RAG(检索增强生成)和 Agent 的技术门槛。

与同类工具对比

  • 对比 Spring Security / Apache Shiro:JeecgBoot 封装了更细粒度的数据权限(如通过 SQL 注入实现行级权限控制),这是原生框架不具备的。
  • 对比 Ruoyi (若依):JeecgBoot 的“Online 代码生成”和“Online 表单”功能比若依更强大,若依更侧重于传统的代码生成,而 JeecgBoot 侧重于“运行时配置”。
  • 对比国外低代码 (OutSystems/Mendix):JeecgBoot 是代码优先 的低代码平台。它生成的代码是可读、可修改的 Java/Vue 代码,而不是封闭的私有模型,这使得它在复杂业务逻辑处理上远胜于国外闭源低代码平台。

技术实现原理

  • 代码生成原理:读取 JDBC DatabaseMetaData 获取表结构 -> 构建 TableEntity 对象 -> 通过 Freemarker 渲染预定义模板 -> 输出文件到磁盘或下载。
  • Online 表单原理:前端解析存储在数据库中的 JSON 配置(包含字段类型、校验规则、组件属性),动态渲染 v-for 循环生成表单项。后端通过 Mybatis-plusQueryWrapper 动态拼接 SQL。

3. 技术实现细节

关键技术方案

  • 数据权限:这是技术实现的难点。JeecgBoot 通过 MyBatis Plus 拦截器,在 SQL 执行前动态注入 SQL 片段。例如,当查询部门数据时,系统自动拼接 AND create_dept IN (user_dept_ids)。这比在业务代码中手动过滤要优雅且高效。
  • 多数据源动态切换:利用 AbstractRoutingDataSource 结合 AOP,实现基于注解的数据源切换,支持读写分离和分库分表逻辑。

代码组织与设计模式

  • 模块化设计:代码结构清晰分为 jeecg-boot-base(核心基础,如启动器、工具类、API 封装)、jeecg-module-system(系统模块)、jeecg-module-demo(示例)。
  • Result 对象统一封装:定义了统一的 Result<?> 返回结构,配合全局异常处理器 @RestControllerAdvice,实现了后端异常的统一处理和前端提示的标准化。

性能优化与扩展性

  • 缓存策略:集成 Redis,对数据字典、权限配置、API 接口进行缓存。特别是数据字典,采用了本地缓存 + Redis 缓存的双层机制,减少网络 IO。
  • 前端性能:Vue3 版本使用了 Vite 构建,配合 Ant Design Vue 的按需加载,显著提升了首屏加载速度。

技术难点与解决方案

  • 难点:Online 报表的复杂 SQL 解析与安全性。
  • 解决:限制了 Online 报表仅支持配置化的查询,禁止用户直接输入原生 SQL,防止 SQL 注入。对于复杂报表,建议使用代码生成器生成专门的 XML。

4. 适用场景分析

适合的项目

  • 企业内部管理系统:OA、ERP、CRM、CMS、WMS。这是 JeecgBoot 的主战场。
  • SaaS 产品原型:快速验证 MVP(最小可行性产品)。
  • 政府/事业单位项目:此类项目通常需求变更频繁,且界面多为表格表单,JeecgBoot 的灵活性和快速迭代能力非常契合。

最有效的情况

  • 团队规模 3-10 人,需要在 1-3 个月内完成一个中型管理系统。
  • 业务逻辑主要是数据的增删改查,且对 UI 细节要求不高(使用现成的 Ant Design 组件库)。

不适合的场景

  • 高并发互联网大促场景:虽然基于 Spring Boot,但其通用的 ORM 和权限拦截逻辑在亿级流量下可能成为瓶颈,需要大量深度优化。
  • 高度定制化的交互界面:例如复杂的可视化大屏、3D 编辑器、游戏类应用。JeecgBoot 的组件库无法支持,必须手写代码,此时框架的辅助作用有限。
  • 对源码体积有极致要求的场景:作为一个“全家桶”式框架,其依赖包较多。

集成方式

  • 直接克隆源码:作为新项目的脚手架。
  • Maven 依赖:将 jeecg-boot-starter 作为依赖引入现有的 Spring Boot 项目(难度较高,不推荐,通常推荐直接基于项目开发)。

5. 发展趋势展望

技术演进方向

  • AI Native (AI 原生):从“辅助生成代码”向“Agent 自动化执行”演进。未来可能实现:通过对话直接修改数据库结构,并自动更新前后端代码。
  • 移动端增强:虽然目前有 UniApp 版本,但未来可能会加强“一次配置,多端生成”的能力。
  • 云原生:更好地适配 Kubernetes,提供 Docker 镜像和 Helm Charts,实现一键部署。

社区反馈与改进空间

  • 文档质量:社区反馈文档更新有时滞后于代码,且 AI 部分的文档尚显稚嫩。
  • 版本兼容性:从 Vue2 迁移到 Vue3,以及 Spring Boot 版本的升级(如 2.x 到 3.x),对存量用户来说是一场阵痛,需要提供更平滑的迁移工具。

与前沿技术结合

  • 向量数据库:AI 模块需要更紧密地集成向量数据库(如 Milvus, PGVector)以提升 RAG 的检索效率。
  • Serverless:探索将生成的 Function 部署为 Serverless 函数。

6. 学习建议

适合的开发者水平

  • 中级:熟悉 Java 基础和 Spring Boot,了解基本的 HTML/JS。
  • 高级:希望深入理解框架源码,进行二次开发或定制底层逻辑。

可学习的内容

  • 企业级权限设计:学习其 RBAC(基于角色的访问控制)和数据权限的设计思路。
  • **代码生成

代码示例

 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
# 示例1:动态表单验证
from django.core.exceptions import ValidationError
from django import forms

class DynamicForm(forms.Form):
    """动态表单验证示例"""
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 动态添加字段
        self.fields['username'] = forms.CharField(
            max_length=50,
            required=True,
            error_messages={'required': '用户名不能为空'}
        )
        self.fields['age'] = forms.IntegerField(
            required=True,
            min_value=18,
            error_messages={'min_value': '年龄必须大于18岁'}
        )

    def clean_username(self):
        """自定义用户名验证"""
        username = self.cleaned_data.get('username')
        if len(username) < 3:
            raise ValidationError("用户名长度不能少于3个字符")
        return username

# 使用示例
form = DynamicForm(data={'username': 'ab', 'age': 20})
if not form.is_valid():
    print(form.errors)  # 输出: {'username': ['用户名长度不能少于3个字符']}
 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
# 示例2:通用查询条件构造器
from django.db.models import Q

def build_query_conditions(params):
    """
    构造动态查询条件
    :param params: 字典类型的查询参数
    :return: Q对象
    """
    q = Q()
    
    # 精确匹配条件
    if 'status' in params:
        q &= Q(status=params['status'])
    
    # 模糊查询条件
    if 'keyword' in params:
        q &= Q(name__icontains=params['keyword']) | Q(code__icontains=params['keyword'])
    
    # 日期范围查询
    if 'start_date' in params and 'end_date' in params:
        q &= Q(create_time__range=[params['start_date'], params['end_date']])
    
    return q

# 使用示例
query_params = {
    'status': 1,
    'keyword': 'test',
    'start_date': '2023-01-01',
    'end_date': '2023-12-31'
}
query = build_query_conditions(query_params)
# 结果: Q(status=1) & (Q(name__icontains='test') | Q(code__icontains='test')) & Q(create_time__range=['2023-01-01', '2023-12-31'])
 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
# 示例3:通用树形结构处理
def build_tree(items, parent_id=None):
    """
    构建树形结构
    :param items: 列表形式的扁平数据
    :param parent_id: 父节点ID
    :return: 树形结构数据
    """
    tree = []
    for item in items:
        if item.get('parentId') == parent_id:
            children = build_tree(items, item.get('id'))
            if children:
                item['children'] = children
            tree.append(item)
    return tree

# 使用示例
flat_data = [
    {'id': 1, 'name': '节点1', 'parentId': None},
    {'id': 2, 'name': '节点1-1', 'parentId': 1},
    {'id': 3, 'name': '节点1-2', 'parentId': 1},
    {'id': 4, 'name': '节点2', 'parentId': None},
    {'id': 5, 'name': '节点2-1', 'parentId': 4},
]
tree_data = build_tree(flat_data)
# 结果: [{'id': 1, 'name': '节点1', 'children': [...]}, {'id': 4, 'name': '节点2', 'children': [...]}]

案例研究

1:某大型国有银行内部管理系统重构

1:某大型国有银行内部管理系统重构

背景: 该银行拥有多个独立的业务部门,此前使用的内部管理系统多为早期外包开发,技术栈老旧且不统一。随着业务数字化转型的深入,行内急需构建一套统一的技术底座,用于快速开发各类中后台管理应用,覆盖办公自动化(OA)、信贷管理及数据上报等场景。

问题:

  1. 开发效率低下:传统开发模式需要大量编写基础CRUD代码,重复造轮子严重,新业务上线周期长。
  2. 代码质量难以把控:由于缺乏统一的开发规范和代码生成器,不同项目组提交的代码风格迥异,后期维护成本极高。
  3. 权限管理复杂:银行业务对数据安全要求极高,需要细粒度的按钮级权限控制,旧系统在处理复杂的部门层级和数据权限时力不从心。

解决方案: 技术团队决定引入 JeecgBoot 作为全行级低代码开发平台。

  1. Online 无代码开发:利用 JeecgBoot 的 Online 代码生成器和 Online 表单功能,开发人员通过拖拽配置即可完成表单和列表页的开发,无需编写前端代码。
  2. 统一技术栈:基于 SpringBoot 和 Vue 的前后端分离架构,统一了全行的开发标准。
  3. 微服务化改造:利用 JeecgBoot 提供的微服务 starter 代码生成模块,快速构建了适应银行高并发场景的微服务架构。

效果:

  1. 效率提升:常规的增删改查功能开发效率提升了 80% 以上,原本需要一周的开发量缩短至 1 天内完成。
  2. 降低门槛:使得初级开发人员甚至业务分析师也能参与到简单系统的搭建中,释放了核心架构师的精力。
  3. 稳定性增强:通过统一的框架封装,规避了常见的 SQL 注入和 XSS 漏洞风险,系统通过了行内严格的安全审计。

2:某省级智慧城市物联网监控平台

2:某省级智慧城市物联网监控平台

背景: 该项目旨在为某省级开发区构建一个“智慧园区”管理平台,需要接入园区内数千个传感器(包括电表、水表、空气质量监测器等),并对海量数据进行实时监控、告警和统计分析。

问题:

  1. 数据量大:传感器每秒上报数据,传统的单体数据库架构难以承载高并发写入。
  2. 报表需求多变:园区管理者经常提出新的统计维度(如按企业、按楼层、按时间段统计能耗),传统硬编码报表方式响应极慢。
  3. 设备对接复杂:传感器品牌众多,协议不一,需要快速开发对应的设备管理界面。

解决方案: 项目组选用 JeecgBoot 作为后端管理核心,并结合大数据组件。

  1. 快速构建设备管理后台:使用 JeecgBoot 的代码生成器,在 3 天内即生成了设备档案、告警记录、运维工单等 20 多个核心管理模块。
  2. 动态报表引擎:利用 JeecgBoot 自带的积木报表(JimuReport)设计器,通过拖拽数据源实现了复杂的交叉报表和驾驶舱大屏,无需编写复杂的 SQL 和 JS。
  3. 数据权限隔离:通过框架的数据权限功能,实现了不同企业用户只能查看自己辖区内的设备数据,确保了数据隔离的安全性。

效果:

  1. 快速交付:项目仅用 3 个月即完成了从 0 到 1 的上线,比同类型项目工期缩短了一半。
  2. 灵活应对变更:面对园区管理方频繁调整的报表需求,开发人员通过配置在线修改报表模板,响应时间从“天”级缩短为“小时”级。
  3. 成本控制:由于框架免费开源且提供了强大的开箱即用功能,大大降低了软件采购成本和人员培训成本。

3:某工业互联网 SaaS 软件服务商

3:某工业互联网 SaaS 软件服务商

背景: 这是一家专注于为中小制造企业提供生产管理(MES)和仓库管理(WMS)服务的 SaaS 公司。随着客户数量的增加,其产品面临着严重的交付压力。

问题:

  1. 定制化需求多:每家工厂的流程差异大,代码分支管理混乱,难以维护。
  2. 交付周期长:每交付一个新客户,需要重新部署一套环境,且基础功能搭建耗时耗力。
  3. 多租户支持弱:原有架构在支持多租户数据隔离方面存在性能瓶颈。

解决方案: 公司将底层架构全面迁移至 JeecgBoot

  1. 低代码定制能力:利用 JeecgBoot 的 Online 表单和代码生成能力,为每个客户快速定制专属的字段和流程,核心代码库保持统一。
  2. 微服务与多租户架构:基于 JeecgBoot 的 Spring Cloud 版本进行二次开发,实现了真正的 SaaS 多租户模式,一套代码服务所有客户。
  3. 移动端集成:借助 JeecgBoot 移动端生成能力,快速为车间工人生成了 App 端报工和盘点应用。

效果:

  1. 交付效率倍增:单个客户的实施部署周期从 2 个月缩短至 2 周。
  2. 维护成本下降:统一的技术栈使得 90% 的代码逻辑可以复用,Bug 修复一次即可惠及所有客户。
  3. 业务扩展:由于开发效率的提升,公司有精力拓展更多行业模块,年营收增长了 40%。

对比分析

与同类方案对比

维度JeecgBootRuoYi (RuoYi-Vue3)Pig (PigX)
技术栈Spring Boot 2/3 + Vue 3 + Ant Design VueSpring Boot 3 + Vue 3 + Element PlusSpring Boot 3 + Vue 3 + Ant Design Vue
核心特性低代码平台(Online Coding)、代码生成器、报表设计RBAC权限管理、多租户支持、代码生成器微服务架构、分布式支持、多租户
性能中等(单体架构适合中小型项目)中等(单体架构,优化后性能较好)高(微服务架构,支持高并发)
易用性高(可视化配置,拖拽式开发)中(需手动编写部分代码)中(需熟悉微服务架构)
成本低(开源免费,社区活跃)低(开源免费,文档丰富)低(开源免费,但微服务运维成本高)
适用场景中小型企业管理系统、快速原型开发中大型企业管理系统、权限复杂项目大型分布式系统、高并发场景
社区支持活跃(国内开发者众多)活跃(国内流行)一般(相对小众)

优势分析

  • JeecgBoot

    • 低代码平台强大,支持在线表单设计和报表生成。
    • 代码生成器灵活,可快速生成CRUD功能。
    • 社区活跃,国内文档和教程丰富。
  • RuoYi

    • 权限管理完善,支持多租户和动态数据源。
    • 代码结构清晰,适合二次开发。
    • 稳定性高,适合生产环境使用。
  • Pig

    • 原生支持微服务架构,适合分布式系统。
    • 集成Spring Cloud全家桶,扩展性强。
    • 支持Docker和Kubernetes部署。

不足分析

  • JeecgBoot

    • 单体架构限制,不适合超大规模项目。
    • 定制化开发可能受限于低代码平台。
    • 微服务支持较弱,需自行改造。
  • RuoYi

    • 缺少低代码能力,开发效率相对较低。
    • 微服务版本(RuoYi-Cloud)复杂度较高。
    • 前端UI相对传统。
  • Pig

    • 学习曲线陡峭,需熟悉微服务技术栈。
    • 运维成本高,适合有技术积累的团队。
    • 社区资源相对较少。

最佳实践

最佳实践指南

实践 1:合理利用 Online 代码生成器

说明: JeecgBoot 的核心优势在于其强大的 Online 代码生成器。通过可视化界面配置表单、列表和查询条件,可以一键生成前后端代码。这不仅能大幅减少重复性编码工作,还能确保生成代码符合框架规范,降低出错率。

实施步骤:

  1. 在系统管理菜单中进入“Online 表单开发”。
  2. 配置数据库表映射,设置表单展示控件(如下拉框、日期选择器等)。
  3. 配置查询条件和列表显示列。
  4. 点击“生成代码”,将生成的 Java、Vue 文件拷贝至对应项目目录。
  5. 重新编译后端并刷新前端页面即可使用。

注意事项: 生成代码后,若需修改业务逻辑,建议在生成的 Service 或 Controller 层进行扩展,而不是直接修改生成的模板文件,以免下次重新生成时覆盖自定义逻辑。


实践 2:遵循前后端分离规范与接口设计

说明: JeecgBoot 采用前后端分离架构。后端使用 SpringBoot 提供标准 RESTful API,前端使用 Vue + Ant Design Vue。为了保持系统的一致性和可维护性,必须严格遵循框架定义的接口返回格式和交互规范。

实施步骤:

  1. 后端接口统一返回 Result 对象,包含 success、message、result 等标准字段。
  2. 使用 @AutoLog 注解记录关键操作日志,便于审计和排查问题。
  3. 前端请求统一使用封装的 http 请求方法,处理全局的 Loading 效果和 Error 提示。
  4. 遵循 RESTful 风格定义 URL 路径(如 GET /list, POST /add, PUT /edit, DELETE /delete)。

注意事项: 避免在后端 Controller 中直接编写复杂的业务逻辑,应将业务逻辑下沉至 Service 层或 Mapper 层。


实践 3:利用权限注解进行细粒度控制

说明: 框架集成了 Shiro 或 JWT 进行权限管理。除了菜单权限和数据权限外,开发时应善用框架提供的权限注解来控制按钮级别或接口级别的访问,确保系统安全。

实施步骤:

  1. 在前端页面组件中,使用 v-has 指令控制按钮的显示与隐藏(例如:<a-button v-has="'user:add'">)。
  2. 在后端 Controller 接口上,使用 @PermissionData 注解进行数据权限过滤。
  3. 配置角色权限分配,确保特定角色只能访问特定的 API 接口。

注意事项: 权限配置变更后,可能需要用户重新登录或刷新缓存才能生效,开发时需注意权限缓存的更新机制。


实践 4:数据字典与国际化配置

说明: 系统中大量的下拉选项、状态值应通过“数据字典”进行管理,而不是硬编码在前端或后端。这样便于后期维护和统一修改,同时也支持多语言(国际化)场景。

实施步骤:

  1. 在“数据字典”管理页面新增字典类型和字典项。
  2. 在前端页面使用 <j-dict-select-tag><j-dict-text> 组件,绑定对应的字典 code。
  3. 在后端代码中,若需要转换字典值,可注入 DictService 或使用 @Dict 注解在实体类字段上自动翻译。

注意事项: 字典项的值应保持唯一且稳定,避免频繁修改字典值导致的历史数据无法正确回显的问题。


实践 5:自定义校验器与表单验证

说明: 虽然 JeecgBoot 提供了默认的表单验证规则,但在复杂业务场景下,需要自定义校验逻辑(如跨字段校验、异步校验)。

实施步骤:

  1. 后端:在实体类中使用 @NotNull@Email 等 Hibernate Validator 注解,或自定义注解配合 Validator 实现类。
  2. 前端:在 Vue 组件的 rules 配置中,编写自定义 validator 函数。
  3. 利用框架封装的 JS 工具类(如 validate)进行表单提交前的统一校验。

注意事项: 前后端均需进行校验。前端校验提升用户体验,后端校验确保数据安全。


实践 6:使用 JeecgBoot 封装的组件库

说明: JeecgBoot 基于 Ant Design Vue 进行了二次封装,提供了许多开箱即用的业务组件(如 JUpload、JImageUpload、JSelectUserByDep 等)。使用这些组件可以大幅提升开发效率并保持 UI 风格统一。

实施步骤:

  1. 查阅官方文档的“组件文档”部分,了解封装组件的属性和事件。
  2. 在表单设计或页面开发时,优先选用 j- 开头的组件。
  3. 对于通用布局,使用 `<

性能优化建议

性能优化建议

优化 1:数据库索引优化

说明: JeecgBoot 作为低代码平台,动态生成的查询语句较多,若数据库表缺乏合理的索引,会导致全表扫描,严重影响查询速度。特别是针对 create_timeupdate_time 以及业务中常用的查询字段(如状态码、外键 ID)。

实施方法:

  1. 开启 MySQL 的慢查询日志,定位执行时间超过 1秒 的 SQL 语句。
  2. 使用 EXPLAIN 分析慢 SQL,检查 typekey 字段,确认是否命中索引。
  3. 为高频 WHERE 条件字段、ORDER BY 排序字段及 JOIN 关联字段添加联合索引。
  4. 定期使用 ANALYZE TABLE 更新表统计信息。

预期效果: 针对大数据量单表查询,响应时间可从秒级降低至毫秒级,查询速度提升 90% 以上。


优化 2:后端接口缓存策略

说明: 系统中存在大量变动不频繁的数据(如数据字典、系统配置、部门树结构等),每次请求都直接查询数据库会造成不必要的资源开销。

实施方法:

  1. 利用 JeecgBoot 自带的 Redis 缓存机制,对 DictCache(字典缓存)和 SysPermissionCache(权限缓存)进行预热。
  2. 在 Service 层方法上使用 Spring Cache 注解(如 @Cacheable, @CacheEvict)。
  3. 设置合理的过期时间(TTL),对于核心配置数据可适当延长,对于临时数据设置较短过期时间。

预期效果: 高频静态数据接口的 QPS(每秒查询率)提升 50%-80%,数据库 CPU 使用率下降 30%。


优化 3:SQL 注入拦截与批量操作优化

说明: JeecgBoot 的 QueryWrapper 动态拼接 SQL 在处理复杂查询时容易产生 N+1 问题,且批量插入/更新操作若未进行事务合并,会导致数据库连接池耗尽。

实施方法:

  1. 批量处理优化: 在导入或批量更新数据时,避免在循环中单条执行 SQL。应使用 MyBatis-Plus 的 saveBatch 方法,并调整 sqlSessionFactorydefaultBatchSize 参数(建议调整为 1000)。
  2. N+1 问题解决: 使用 @TableField(select = false) 控制懒加载,或在主查询中显式使用 JOIN 语句或 in 嵌套查询一次性提取关联数据。
  3. 开启 MyBatis 的二级缓存(需谨慎处理脏读问题)。

预期效果: 大数据量导入场景下,性能提升 10 倍以上;复杂列表查询接口响应时间减少 40%。


优化 4:前端资源加载与渲染优化

说明: JeecgBoot 前端基于 Vue,随着业务堆积,打包后的 JS 体积会非常庞大,导致首屏加载时间(FCP)过长。

实施方法:

  1. 路由懒加载: 确保所有路由组件均采用动态 import 语法(() => import('...')),避免首屏加载全部代码。
  2. Gzip 压缩: 在 Nginx 配置中开启 gzip ongzip_types application/javascript text/css
  3. CDN 加速: 将 vue, antd, moment 等大型依赖库剥离,改为通过 CDN 引用,减小 vendor.js 体积。
  4. 关闭生产环境 SourceMap: 修改 vue.config.js,设置 productionSourceMap: false

预期效果: 首屏加载时间减少 40%-60%,网络传输流量降低 50%。


优化 5:JVM 参数与垃圾回收调优

说明: 默认的 JVM 配置通常无法满足高并发生产环境的需求,可能导致频繁 Full GC(Full Garbage Collection),造成系统卡顿(STW)。

实施方法:

  1. 选择合适的垃圾收集器:

学习要点

  • JeecgBoot是一款基于代码生成器的低代码开发平台,显著提升企业级应用开发效率
  • 采用前后端分离架构,前端基于Ant Design Vue,后端集成Spring Boot和MyBatis-Plus
  • 内置强大的代码生成器,支持单表、树表、主子表等多种业务场景的快速生成
  • 提供完善的权限管理系统,包括用户、角色、菜单、部门等多维度权限控制
  • 集成主流技术栈如Spring Cloud微服务、Redis缓存、定时任务等,开箱即用
  • 支持在线表单设计器,通过拖拽方式快速构建业务表单和流程
  • 拥有活跃的开源社区和丰富的文档资源,适合快速搭建企业级管理系统

学习路径

学习路径

阶段 1:环境搭建与基础认知

学习内容:

  • JeecgBoot 的核心架构介绍(前后端分离架构)
  • 开发环境配置(JDK 1.8+, Node.js, Maven, Redis, Nginx)
  • 快速启动官方 Demo 项目
  • 熟悉后台管理系统的基本功能模块(用户管理、角色权限、菜单管理)
  • 理解 JeecgBoot 的技术栈(后端:SpringBoot + Mybatis-Plus;前端:Vue3 + Ant Design Vue)

学习时间: 1-2周

学习资源:

  • JeecgBoot 官方文档 - 快速入门章节
  • JeecgBoot 官方 B 站频道 - 环境搭建教学视频
  • GitHub 仓库 Wiki 说明

学习建议: 务必亲自动手搭建环境,不要只看视频。建议在本地成功运行起 Demo 后,登录后台,逐一点击菜单,感受系统自带的“代码生成”和“在线报表”等核心功能,建立感性认识。


阶段 2:代码生成与核心开发

学习内容:

  • 在线表单设计与代码生成器(Online Form)的使用
  • 单表、树表、主子表的代码生成流程
  • 生成的代码结构解析(Controller, Service, Entity, Vue 页面)
  • 基于生成代码的 CRUD(增删改查)业务开发
  • 接口权限与按钮权限的配置
  • 前端组件库 Ant Design Vue 的常用组件使用

学习时间: 2-3周

学习资源:

  • JeecgBoot 官方文档 - 代码生成专题
  • 官方低代码开发教程
  • Ant Design Vue 官方文档

学习建议: 这是 JeecgBoot 最具价值的阶段。重点掌握如何设计数据库表,然后通过代码生成器一键生成前后端代码。尝试设计一个简单的业务场景(如“订单管理”),从建表到生成代码,再到实现基本功能,完整走一遍流程。


阶段 3:进阶定制与源码理解

学习内容:

  • 自定义查询 SQL 和数据权限控制
  • JeecgBoot 自带封装的常用工具类
  • 扩展代码生成器模板(修改生成逻辑以符合特定规范)
  • 前端高级功能(自定义表单、报表设计器、积木报表)
  • 系统集成(对接第三方 API、文件上传、消息通知)
  • 前后端分离部署流程(Docker 部署、Nginx 配置)

学习时间: 3-4周

学习资源:

  • JeecgBoot 开发者社区与论坛
  • 源码阅读:GitHub 仓库源码
  • 官方付费进阶视频课程(如有)

学习建议: 在此阶段,不要满足于生成的代码。尝试阅读生成的代码背后的基类实现,理解 JeecgBoot 的封装逻辑。学习如何在不修改生成代码的前提下进行功能扩展。尝试将项目部署到服务器,并解决跨域、打包等常见问题。


阶段 4:架构优化与二开实战

学习内容:

  • 微服务版本架构分析
  • 自定义 Starter 开发
  • 深入理解 Mybatis-Plus 的插件机制与 Jeecg 的数据字典集成
  • 复杂业务逻辑下的性能优化(SQL 优化、缓存策略)
  • 定制化主题与样式修改
  • 参与开源社区或构建企业级私有化部署方案

学习时间: 持续学习

学习资源:

  • Spring Boot 官方文档(深入原理)
  • JeecgBoot 源码深度解析文章
  • 企业级项目实战案例

学习建议: 此时应具备独立设计复杂系统的能力。建议尝试阅读 JeecgBoot 的核心源码,理解其设计模式。同时,可以尝试向 GitHub 提交 PR 或在社区回答问题,以验证自己的掌握程度。关注官方更新日志,保持技术栈的更新。


常见问题

1: JeecgBoot 是什么?它有哪些核心特性?

1: JeecgBoot 是什么?它有哪些核心特性?

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,开源社区非常活跃。它采用前后端分离架构,核心技术栈包括:

  • 后端:基于 Spring Boot,支持 Spring Cloud 微服务,集成了 MyBatis-Plus 等持久层框架。
  • 前端:基于 Vue3 (Ant Design Vue) 或 Vue2 (Ant Design Vue),提供了企业级中后台前端解决方案。
  • 核心特性
    • Online 代码生成器:通过在线表单配置,自动生成 Java、Vue、SQL 等代码,极大提升开发效率。
    • 低代码能力:支持 Online 表单开发、Online 报表、表单设计器等,无需编写代码即可完成复杂业务。
    • 权限管理:内置了细粒度的权限控制(RBAC),支持数据权限控制。
    • 开箱即用:集成了常用的系统功能,如用户管理、角色管理、字典管理、日志管理等。

2: JeecgBoot 的系统环境要求是什么?如何快速启动?

2: JeecgBoot 的系统环境要求是什么?如何快速启动?

A: 为了保证 JeecgBoot 的稳定运行,建议的开发环境配置如下:

  • JDK: 推荐 JDK 1.8 或 JDK 17(JeecgBoot 3.6+ 版本已全面兼容 JDK 17)。
  • 数据库: 支持 MySQL 5.7+、PostgreSQL、Oracle、SQL Server 等主流数据库。推荐使用 MySQL 5.7 或 8.0。
  • Node.js: 前端环境要求 Node.js 版本在 14 或以上(推荐使用 Node 16 或 18)。
  • IDE: 后端推荐 IntelliJ IDEA,前端推荐 WebStorm 或 VS Code。

快速启动步骤

  1. 克隆代码后,先执行 SQL 脚本初始化数据库。
  2. 修改后端配置文件中的数据库连接信息。
  3. 启动后端 Spring Boot 应用。
  4. 进入前端目录执行 npm install 安装依赖,然后执行 npm run serve 启动前端开发服务器。

3: JeecgBoot 生成的代码是否可以商用?它是开源的吗?

3: JeecgBoot 生成的代码是否可以商用?它是开源的吗?

A: JeecgBoot 是开源项目,可以免费商用。

  • 开源协议:JeecgBoot 采用的是 Apache License 2.0 开源协议。这是一个对商业应用非常友好的协议。
  • 商用权限:您允许将其用于商业项目,且不需要开源您私有的代码。您可以自由地使用、修改和分发。
  • 注意事项:虽然可以商用,但建议保留原作者的版权声明和许可协议声明,这是对开源社区贡献者的尊重。

4: 如何使用 JeecgBoot 的 Online 代码生成器进行开发?

4: 如何使用 JeecgBoot 的 Online 代码生成器进行开发?

A: Online 代码生成器是 JeecgBoot 的核心功能,使用流程通常如下:

  1. 数据库建表:在数据库中创建一张业务表。
  2. 导入表单:登录 JeecgBoot 系统,进入“Online 表单开发”->“Online 表单”菜单,点击“导入”按钮,选择刚才创建的数据库表,系统会自动读取表结构。
  3. 配置表单
    • 字段配置:设置每个字段的显示类型(下拉框、日期、弹窗等)、校验规则(必填、唯一性等)。
    • 页面配置:设置表单布局、查询条件、列表展示列等。
    • 权限配置:设置字段的查看和编辑权限。
  4. 生成代码:配置完成后,点击“生成代码”按钮,系统会生成一个压缩包,包含 Java Controller、Service、Vue 页面等文件。
  5. 代码集成:将生成的代码解压并放入项目的对应目录中,重启后端服务即可看到新开发的菜单和功能。

5: JeecgBoot 如何进行二次开发?如何扩展系统功能?

5: JeecgBoot 如何进行二次开发?如何扩展系统功能?

A: JeecgBoot 设计了良好的扩展性,支持多种二次开发方式:

  • 常规代码开发:基于生成的代码进行业务逻辑编写,利用 MyBatis-Plus 的便捷 API 进行数据操作。
  • 自定义接口:在生成的 Controller 中添加自定义的业务接口,或创建新的 Controller 处理特殊逻辑。
  • 扩展组件:如果需要自定义表单控件或页面组件,可以在前端项目中基于 Ant Design Vue 进行组件封装,并在 Online 表单中配置使用。
  • Hook 机制:JeecgBoot 提供了数据库切面和接口切面,可以在特定操作(如增删改)前后插入自定义逻辑,而不修改生成器的模板代码。
  • 微服务扩展:如果使用 JeecgCloud 版本,可以通过 Spring Cloud 的标准方式扩展新的微服务模块。

6: JeecgBoot 单体版和微

6: JeecgBoot 单体版和微


思考题

## 挑战与思考题

### 挑战 1: 代码生成器实战

问题**: JeecgBoot 默认集成了代码生成器。请尝试在本地启动项目,并基于数据库中的一张现有单表(如 sys_log),配置生成策略,生成包含前后端代码的基础 CRUD(增删改查)功能模块。

提示**:

确保数据库连接配置正确且表已存在。


实践建议

基于 JeecgBoot 的架构特性及其在 AI 低代码领域的定位,以下是为您提供的 6 条实践建议:

1. 严格遵循代码生成器的“增量开发”模式

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

  • 最佳实践:初次生成代码后,后续的业务逻辑修改应优先在生成的 Service 层或扩展类中进行。如果必须修改生成的 Controller 或 Entity,请务必在代码生成器中配置好“模板路径”或“表单配置”,以便下次数据库变更时能安全地合并代码,而不是直接覆盖。
  • 常见陷阱:直接修改生成的代码文件且未做版本控制标记,一旦数据库表结构变更(如新增字段),重新生成代码时会覆盖掉手写的业务逻辑,导致工作白费。

2. AI 助手与业务流程的解耦设计

虽然 JeecgBoot 提供了 AI 聊天式业务操作,但不应将所有业务逻辑都硬编码在 Prompt(提示词)中。

  • 最佳实践:利用 JeecgBoot 的 AI 流程编排 功能,将复杂的业务请求拆解为标准的 API 接口调用。AI 仅作为“意图识别”和“参数提取”的层,具体的增删改查仍由后端标准的 Java 接口执行。这既能保证数据一致性,又能降低 Token 消耗成本。
  • 常见陷阱:过度依赖 LLM 直接生成 SQL 或执行业务逻辑,容易导致数据安全漏洞(如 SQL 注入风险)或幻觉问题,且难以调试。

3. 知识库 (RAG) 的数据清洗与权限隔离

JeecgBoot 集成了知识库功能,但在企业级应用中,数据质量至关重要。

  • 最佳实践:在导入文档前,务必进行数据清洗(去除无用的页眉页脚、乱码)。同时,要结合 JeecgBoot 自身的权限系统,在知识库检索接口层增加数据权限过滤,确保员工只能通过 AI 检索到其有权访问的文档内容。
  • 常见陷阱:直接将原始文档导入知识库,导致 AI 回答准确率下降;或者忽略了权限隔离,造成低级别员工通过 AI 问答获取到高层机密文档。

4. MCP 与插件化的边界控制

仓库描述中提到了 MCP (Model Context Protocol) 和插件支持,这为扩展 AI 能力提供了便利。

  • 最佳实践:将通用的、非核心的业务能力封装为 MCP 插件或标准 Bean,供 AI 动态调用。例如,将“查询天气”、“发送邮件”或“连接 ERP 系统”封装为独立工具。
  • 常见陷阱:在插件中编写过于复杂的业务逻辑,导致 AI 调用链路超时或上下文丢失。插件应保持“短平快”,专注于单一职责。

5. 前端低代码表单的自定义组件扩展

JeecgBoot 的前端(通常基于 Ant Design Vue)提供了强大的表单拖拽功能。

  • 最佳实践:对于标准组件无法满足的复杂交互(如特殊的联级选择、复杂的图表填报),不要试图通过堆砌标准组件实现。应开发自定义组件并将其注册到低代码设计器中,通过配置 JSON 的方式复用。
  • 常见陷阱:在“在线表单”的设计器中编写过多的 JavaScript 代码逻辑,导致表单加载变慢且难以维护。复杂逻辑应下沉到后端接口或封装在前端组件内部。

6. 部署时的 AI 模型路由策略

  • 最佳实践:在生产环境中,配置多模型路由策略。例如,简单的文档摘要使用低成本的小模型(如 Llama 3 或 GPT-3.5),复杂的代码生成或逻辑推理任务使用高智商模型(如 GPT-4 或 Claude 3.5)。JeecgBoot 的 AI 平台配置通常支持此类模型切换。
  • 常见陷阱:全站业务仅使用一种高成本模型,导致在处理高频简单请求时成本过高,响应速度过慢。

引用

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



站内链接

相关文章