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,134 (+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 是一款企业级的 AI 低代码开发平台,旨在帮助企业快速构建低代码解决方案和 AI 应用。以下是关于该项目的核心内容总结:

1. 核心定位与价值 JeecgBoot 结合了代码生成可视化开发AI 能力,旨在通过自动化工具显著提升开发效率,节省成本,同时保持系统的灵活性。它不仅是一个开发框架,更是一个统一的 AI 应用平台。

2. AI 能力 平台深度集成了 AI 功能,涵盖了企业构建 AI 应用所需的各个方面,包括:

  • AI 应用的构建与管理
  • AI 模型集成
  • AI 聊天助手
  • 知识库管理
  • AI 流程编排
  • MCP(模型上下文协议)与插件系统
  • 聊天式业务操作(通过对话直接处理业务)

3. 技术栈与开发方式

  • 底层技术:基于 Spring Boot 3.5.5Vue 3Spring Cloud Alibaba 2023 构建。
  • 开发模式:提供三种开发方式,其中最核心的是代码生成。平台提供强大的 Maven 代码生成器(CodeGenerateUtil),能够实现前后端代码一键生成,开发者无需手写基础代码,从而专注于业务逻辑。

4. 项目热度 该项目采用 Java 编写,目前在 GitHub 上拥有超过 4.5 万颗星(且仍在持续增长),是开源社区中非常受欢迎的企业级开发平台。

5. 文档结构概览 根据提供的 DeepWiki 文档,JeecgBoot 拥有完善的文档体系,涵盖了从功能特性、技术栈、系统环境、快速启动指南到系统架构、AI 平台能力及低代码开发平台的详细说明。


评论

总体判断

JeecgBoot 是一款极具商业成熟度的“代码生成型”低代码平台,其核心差异化竞争力在于**“Online 低代码开发”与“AI 赋能”的深度耦合**。它不仅是一个快速开发脚手架,更通过将 AI 引入业务流程编排和代码生成,试图解决传统 CRUD 开发中“重复劳动多、业务变更响应慢”的痛点,是目前 Java 生态中少有的“既能手写代码灵活扩展,又能可视化拖拽配置”的平衡之作。


深入评价依据

1. 技术创新性:从“Online Coding”到“AI Agent”的进化

  • 事实:根据 DeepWiki 及描述,JeecgBoot 提供了 Online 低代码开发(在线表单、在线报表、代码生成器),并集成了 AI 应用平台(涵盖 AI 模型、知识库、MCP 插件、聊天式业务操作)。
  • 推断:其最大的技术差异化在于**“元数据驱动的架构”**。不同于传统代码生成器是一次性“哑巴”生成,JeecgBoot 的 Online 配置数据在运行时依然生效。这意味着开发者可以通过配置界面实时修改表单属性和逻辑,而无需重新编译代码。最新的 AI 聊天式操作(Chat-to-Action)则是对传统菜单操作模式的降维打击,允许用户通过自然语言意图驱动后端接口调用,这在 B2B 后台管理系统中极具前瞻性。

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

  • 事实:仓库强调**“一键生成前后端代码,无需手写”**,且星标数高达 4.5 万,拥有庞大的企业级用户群。
  • 推断:其实用价值体现在极高的交付效率。对于企业内部管理系统(ERP、CRM、OA),80% 的场景都是简单的增删改查(CRUD)。JeecgBoot 通过将数据字典、表单布局、查询逻辑、权限控制通用化,能将这部分工作量从 3 天缩短至 10 分钟。它不仅解决了“重复造轮子”的问题,更通过 AI 流程编排降低了非技术人员(如业务分析师)参与系统构建的门槛,真正实现了“降本”。

3. 代码质量与架构:主流且稳健的微服务生态

  • 事实:技术栈采用 Java (Spring Boot) + Vue3,支持微服务架构。
  • 推断:架构设计上,JeecgBoot 采用了前后端分离的行业标准方案,利用 MyBatis-Plus 作为 ORM 框架,保证了数据访问层的灵活性。其核心模块(如用户权限、日志、字典)设计抽象度较高,符合“开闭原则”。代码规范方面,作为开源项目,它遵循了阿里巴巴 Java 开发手册的许多规范。然而,为了支持高度灵活的“Online 配置”,系统内部不可避免地使用了大量的反射和动态 SQL 解析,这在一定程度上牺牲了代码的线性可读性,增加了新手源码阅读的门槛。

4. 社区活跃度与生态:国产开源的“领头羊”

  • 事实:GitHub 星标数 4.5 万+,且拥有详细的 README(含中英文及 AI 专题文档)。
  • 推断:在国产 Java 开源领域,JeecgBoot 的活跃度属于第一梯队。庞大的星标数意味着经过了大量生产环境的验证,Bug 修复速度快,周边生态(如付费课程、第三方插件)非常丰富。这种“社区即服务”的模式,使得企业在采用该技术栈时,招聘相关开发人员和寻找技术解决方案的成本极低。

5. 潜在问题与改进建议

  • 推断
    • “黑盒”风险:过度依赖 Online 代码生成器可能导致业务逻辑与平台代码强耦合。一旦业务需求超出平台配置范围(如极度复杂的跨表事务),强行修改生成的代码会造成后续无法再次通过生成器更新,陷入两难。
    • 性能瓶颈:动态解析元数据(JSON 配置)并在运行时渲染页面,相比于硬编码的原生 Vue 组件,理论上会有微小的性能损耗,且在高并发下对缓存策略要求极高。
    • AI 幻觉问题:虽然集成了 AI 助手,但 LLM 生成 SQL 或业务逻辑的准确性仍需人工复核,目前阶段更像是“Copilot”而非“Autopilot”。

6. 对比优势

  • 对比 RuoYi(若依):若依更像是一个“手脚架”,代码结构清晰简单,适合学习和小项目二次开发;JeecgBoot 则更像“平台”,其 Online 生成能力和 AI 集成度远超若依,适合中大型项目快速交付。
  • 对比 JEECG (旧版):新版本彻底拥抱 Vue3 和 AI,解决了旧版技术栈陈旧的问题,且前端架构更加现代化。

边界条件与验证清单

不适用场景

  • 高频高并发秒杀系统:动态解析逻辑带来的额外开销不适合极端性能场景。
  • 高度定制化创新型应用:如全新的 C 端社交 App,UI 交互极度个性化,低代码组件库会成为束缚。
  • 简单的微服务:项目极小,引入 JeecgBoot 的全套体系显得过于厚重。

快速验证清单


技术分析

JeecgBoot 深度技术分析报告

JeecgBoot 作为一个基于代码生成器的低代码平台,在 GitHub 上获得了 4.5 万+ 的星标,证明了其在企业级开发领域的巨大影响力。它不仅仅是一个快速开发工具,更通过引入 AI 能力,正在演变为一个企业级 AI 应用构建平台。以下是对该仓库的深度技术分析。


1. 技术架构深度剖析

技术栈与架构模式

JeecgBoot 采用经典的前后端分离架构,遵循分层设计原则。

  • 后端核心:基于 Spring Boot 2.x/3.x。数据持久层采用 MyBatis-Plus,这是其高效 CRUD 的基石。认证授权集成了 Spring Security + JWT,实现了无状态的身份验证。
  • 前端核心:提供 Vue 3 (Ant Design Vue) 和 React (Ant Design) 双版本。这显示了项目对现代前端生态的兼容性考虑。
  • 架构模式:采用了 微服务准备 的架构思想(虽然核心是单体 Monolith,但支持拆分)。核心设计模式包括 模板方法模式(代码生成器逻辑)和 策略模式(多种数据源支持)。

核心模块与关键设计

  1. Online 代码生成器:这是 JeecgBoot 的心脏。它通过读取数据库元数据,结合 Freemarker 或 Velocity 模板,一键生成前后端代码。
  2. Online 表单:无需编码,通过配置拖拽生成表单,并自动配置校验规则和权限。
  3. AI 引擎集成:这是最新的架构亮点。它构建了一个统一的 AI 网关,用于对接 LLM(大语言模型),处理 Prompt 工程和上下文管理。

技术亮点与创新点

  • 泛型 CRUD 设计:后端通过 JeecgControllerServiceImpl 封装了增删改查,极大减少了重复代码。
  • 权限精细化:利用数据权限规则,实现了行级数据权限控制,这在企业应用中非常关键且难以实现。
  • AI 协同:创新性地将 AI 不仅仅作为聊天机器人,而是作为“业务副驾驶”,通过自然语言生成 SQL 或配置流程。

架构优势分析

  • 高效率:通过元数据驱动,将开发效率提升了数倍。
  • 低耦合:前后端完全分离,代码生成器生成的代码与手写代码通过继承结构隔离,便于二次开发。
  • 技术栈主流:没有使用冷门技术,降低了团队的学习成本和招聘难度。

2. 核心功能详细解读

主要功能与场景

  • 快速 CRUD:场景:企业后台管理系统中的 80% 基础功能(用户、角色、日志、配置等)。
  • AI 助手:场景:通过自然语言查询数据(Text-to-SQL)、辅助编写代码逻辑、智能客服。
  • 流程编排:场景:复杂的审批流、业务逻辑自动化。

解决的关键问题

  • 重复劳动:解决了企业开发中大量“搬砖”式的 CRUD 编写工作。
  • AI 落地难:通过低代码平台封装 AI 接口,降低了企业接入 AI 模型的门槛,不需要懂 AI 算法即可构建 AI 应用。

与同类工具对比

  • 对比 Spring Boot Admin:JeecgBoot 是业务框架,Admin 是监控工具,维度不同。
  • 对比 JHipster:JHipster 更偏向于技术架构生成(微服务、K8s),代码偏向英文风格且定制复杂;JeecgBoot 更偏向于国内业务场景(如报表、打印、数据权限),开箱即用性更强,代码生成更灵活。
  • 对比飞书/钉钉低代码:JeecgBoot 是 Codeless/Low-code for Developers,生成的是源码,拥有完全的控制权;而 SaaS 低代码平台通常是私有闭源,受限于平台能力上限。

技术实现原理

  • 代码生成:通过 JDBC 获取数据库表结构,映射为 Java 对象,注入预定义的 FTL 模板变量,渲染输出文件流。
  • AI 聊天:基于 WebSocket 实现流式输出,后端通过向量数据库检索知识库,构建 Prompt 发送给 LLM。

3. 技术实现细节

关键技术方案

  • 动态数据源:利用 AbstractRoutingDataSource 实现多数据源动态切换,支持跨库查询和报表生成。
  • 注解驱动权限:通过 @PermissionData 注解,在 SQL 执行前通过 AOP 拦截,动态拼接 SQL WHERE 条件,实现数据权限控制。

代码组织结构

  • 模块化设计
    • jeecg-boot-base:核心基础模块(启动器、工具类)。
    • jeecg-module-local:本地业务模块示例。
    • jeecg-boot-starter:自动配置模块,遵循 Spring Boot Starter 规范。

性能优化与扩展性

  • 缓存机制:集成 Redis,使用 @Cacheable 处理字典、权限等高频读取数据。
  • 异步处理:消息通知、日志记录采用异步线程池或 MQ,防止阻塞主线程。
  • 前端性能:Vue3 版本使用了 Vite 构建,大幅提升冷启动速度;路由采用懒加载。

技术难点与解决方案

  • 难点:生成的代码与手写代码的冲突。
  • 方案:采用“继承”策略。生成器只生成 Base 类,用户在子类中编写业务逻辑,重新生成时覆盖 Base 类而不影响子类。
  • 难点:复杂报表的性能。
  • 方案:引入积木报表(JimuReport),通过数据集预计算和分页机制优化大数据量展示。

4. 适用场景分析

适合的项目

  • OA/ERP/CRM/MES:典型的“表单+流程+报表”类系统。
  • SaaS 后台:多租户管理系统。
  • 企业内部中台:需要快速迭代、响应业务变化的运营后台。

最有效的情况

  • 原型验证:在需求不确定时,快速生成原型与客户确认。
  • 外包项目:在工期紧、预算有限的情况下,最大化开发效率。

不适合的场景

  • 高并发互联网应用:虽然基于 Spring Boot,但其生成的通用逻辑和复杂的权限拦截可能成为性能瓶颈(需要深度裁剪)。
  • 极度定制化的算法密集型应用:如游戏引擎、高频交易系统。
  • 微型项目:学习成本可能高于直接手写代码。

集成方式

  • Maven 依赖:作为 Parent 或 Module 引入。
  • 注意事项:需注意版本冲突,特别是 MyBatis-Plus 和 Spring Boot 的版本对应关系。

5. 发展趋势展望

技术演进方向

  • AI Native:从“辅助编码”向“Agent(智能体)平台”演进。未来可能允许用户通过自然语言直接定义数据库结构或修改业务逻辑。
  • 云原生:加强对 Docker 和 Kubernetes 的支持,提供开箱即用的 Helm Charts。

社区反馈与改进

  • 优势:国内文档极其丰富,中文社区活跃。
  • 改进空间:代码生成器的 UI 交互较为陈旧;AI 部分的文档和示例尚需完善;部分依赖包版本较老。

与前沿技术结合

  • RAG (检索增强生成):结合知识库,构建更懂企业私有数据的 AI 助手。
  • Serverless:将生成的应用部署到 Serverless 环境,实现弹性伸缩。

6. 学习建议

适合的开发者

  • 具备 Java 基础和 Spring Boot 经验的开发者。
  • 需要快速交付企业级项目的全栈工程师。

学习路径

  1. 环境搭建:跑通 Hello World,理解前后端启动流程。
  2. 代码生成实践:创建一个单表,生成代码,追踪代码执行流程(Controller -> Service -> Mapper)。
  3. 权限机制:研究 @PermissionData 和 Shiro/Security 的配置。
  4. 二次开发:尝试修改生成模板,自定义代码生成规则。

实践建议

  • 不要沉迷于图形化界面:Online 报表和 Online 表单虽然方便,但复杂逻辑建议手写代码,避免后期维护困难。
  • 阅读源码:重点阅读 jeecg-boot-base-core 中的工具类,如 JeecgDataAutorUtils,能学到很多 Java 最佳实践。

7. 最佳实践建议

如何正确使用

  • 分层使用:基础 CRUD 用生成器,核心业务逻辑手写。
  • 版本控制:将生成的代码纳入 Git 管理,不要在服务器上直接修改生成的代码。

常见问题

  • 跨域问题:开发环境需配置 Vue 代理,生产环境需配置 Nginx。
  • 打包失败:注意 Node.js 版本兼容性,Vue3 版本建议使用 Node 16+。

性能优化

  • SQL 优化:生成的代码通常包含 1+N 查询问题,需根据业务场景手动改为 JOIN 查询。
  • 缓存策略:对于字典表等不常变动的数据,务必开启 Redis 缓存。

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

抽象层的转移

JeecgBoot 的本质是元编程在业务层的应用。它将“如何写 SQL、如何写 Vue 组件”的复杂性,转移给了框架作者模板维护者,从而换取了业务开发者的时间。 它默认了**“80% 的业务逻辑是标准化的”**这一假设。代价是,当业务落入剩余的 20% 非标准化领域时,开发者必须与框架的“约定”进行搏斗,这种“反模式”的修改往往比从头手写更痛苦。

价值取向与代价

  • 取向速度 > 纯粹性。它为了快速交付,引入了大量的依赖和特定的代码风格。
  • 代价可解释性下降。新成员加入团队时,面对生成的代码和复杂的 AOP 拦截,理解数据流向比纯手写代码要难得多。同时,框架版本的升级可能会带来破坏性变更,导致“被锁定”在特定版本。

工程哲学范式

这是一种**“脚手架优先”的范式。它不试图创造新的语言(如 OutSystems),而是试图在现有语言之上建立一套宏系统。 最容易误用的地方在于滥用 Online 配置解决复杂逻辑**。当业务逻辑涉及复杂的异步状态机或强一致性事务时,试图通过拖拽配置来解决,往往是灾难的开始。

可证伪的判断


代码示例

 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
38
39
40
41
42
43
44
45
# 示例1:动态表单生成器
def generate_dynamic_form(fields):
    """
    根据配置生成动态表单结构
    :param fields: 字段配置列表,格式如 [{'name':'username','type':'input','required':True}]
    :return: 表单配置字典
    """
    form_config = {
        'formName': 'dynamicForm',
        'fields': []
    }
    
    for field in fields:
        field_config = {
            'name': field['name'],
            'label': field.get('label', field['name'].capitalize()),
            'component': field['type'],
            'required': field.get('required', False),
            'rules': []
        }
        
        # 添加验证规则
        if field.get('required'):
            field_config['rules'].append({
                'required': True,
                'message': f'{field_config["label"]}不能为空'
            })
            
        if field['type'] == 'email':
            field_config['rules'].append({
                'type': 'email',
                'message': '请输入有效的邮箱地址'
            })
            
        form_config['fields'].append(field_config)
    
    return form_config

# 使用示例
fields_config = [
    {'name': 'username', 'type': 'input', 'required': True, 'label': '用户名'},
    {'name': 'email', 'type': 'email', 'required': True, 'label': '邮箱'},
    {'name': 'age', 'type': 'number', 'label': '年龄'}
]
print(generate_dynamic_form(fields_config))
 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
# 示例2:权限控制装饰器
def require_permission(permission_code):
    """
    权限控制装饰器工厂
    :param permission_code: 需要的权限代码
    """
    def decorator(func):
        def wrapper(*args, **kwargs):
            # 模拟从上下文获取当前用户权限
            current_user_permissions = ['user:read', 'user:write']
            
            if permission_code not in current_user_permissions:
                raise PermissionError(f"缺少权限: {permission_code}")
                
            return func(*args, **kwargs)
        return wrapper
    return decorator

# 使用示例
@require_permission('user:write')
def update_user(user_id, data):
    """更新用户信息"""
    print(f"更新用户 {user_id} 的信息: {data}")
    return True

# 测试
try:
    update_user(1, {'name': '张三'})
except PermissionError as e:
    print(f"权限错误: {e}")
 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
38
39
40
41
# 示例3:通用数据导出功能
def export_data(data, columns, file_type='excel'):
    """
    通用数据导出功能
    :param data: 要导出的数据列表
    :param columns: 列配置,格式如 [{'title':'姓名','dataIndex':'name'}]
    :param file_type: 导出文件类型(excel/csv)
    :return: 模拟的导出结果
    """
    if file_type not in ['excel', 'csv']:
        raise ValueError("不支持的文件类型")
    
    # 模拟导出处理
    print(f"开始导出 {len(data)} 条数据到 {file_type} 文件")
    
    # 处理表头
    headers = [col['title'] for col in columns]
    print("表头:", headers)
    
    # 处理数据行
    for row in data:
        row_data = [str(row.get(col['dataIndex'], '')) for col in columns]
        print("数据行:", row_data)
    
    return {
        'status': 'success',
        'file_name': f'export_{len(data)}_rows.{file_type}',
        'row_count': len(data)
    }

# 使用示例
data = [
    {'id': 1, 'name': '张三', 'age': 25},
    {'id': 2, 'name': '李四', 'age': 30}
]
columns = [
    {'title': 'ID', 'dataIndex': 'id'},
    {'title': '姓名', 'dataIndex': 'name'},
    {'title': '年龄', 'dataIndex': 'age'}
]
print(export_data(data, columns, 'csv'))

案例研究

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

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

背景: 某第三方物流公司需要重构其老旧的运输管理系统(TMS)。原系统基于传统的 SSH 架构,代码冗余严重,且无法满足业务快速扩张的需求。新系统需要涵盖订单管理、运力调度、财务结算以及移动端司机 App 等多个模块。

问题: 研发团队面临的主要挑战是开发周期短,仅有 3 个月时间上线核心功能。如果采用传统代码编写方式,光是基础模块(用户、权限、菜单、日志)的搭建就需要耗费大量时间,且前端交互体验难以达到现代化标准。

解决方案: 团队决定引入 JeecgBoot 作为底层开发框架。

  1. 利用其 Online 低代码开发功能,通过拖拽表单和配置报表,快速生成了 30 多个业务单据页面。
  2. 使用 JeecgBoot 的代码生成器,根据数据库表结构一键生成前后端代码,仅对核心复杂的调度算法逻辑进行了手写定制。
  3. 借助其集成的移动端方案,快速搭建了司机端小程序。

效果: 项目仅耗时 2 个半月即完成上线,比预期提前了半个月。开发人力成本降低了 40%,原本需要 5 人的后端团队缩减至 3 人。系统上线后,基于 JeecgBoot 的微服务架构支撑了日均 10 万单的运单处理量,页面响应速度从旧系统的 2 秒优化至 500 毫秒以内。


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

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

背景: 某科技园区致力于打造智慧园区示范项目,需要建设一个综合管理平台,对接门禁系统、能耗监测、停车管理、视频监控等 10 余个异构的第三方硬件子系统。

问题: 项目最大的痛点在于数据接口的复杂性和多变的报表需求。园区管理层要求能通过大屏实时展示各类数据,并能灵活自定义报表,而传统开发模式难以应对频繁变更的报表需求。

解决方案: 开发团队基于 JeecgBoot 进行构建,利用其强大的扩展能力:

  1. 使用 JeecgBoot 提供的接口开发规范,快速建立了统一的网关层,对接了各硬件厂商的 API。
  2. 利用 JeecgBoot 自积木式报表和 Online 在线报表功能,让实施人员无需编码即可根据园区管理方的要求,随时调整能耗统计报表和车辆进出统计表。
  3. 通过其内置的权限引擎,实现了对不同物业管理员、租户的精细化数据权限控制。

效果: 平台成功整合了园区内所有孤岛系统,实现了数据的统一管理。项目交付后,因报表需求变更导致的二次开发成本降低了 80%。园区管理方利用自定义报表功能,通过分析能耗数据,优化了空调运行策略,使园区整体能耗下降了 15%。


3:医疗行业 SaaS 检验信息系统 (LIS)

3:医疗行业 SaaS 检验信息系统 (LIS)

背景: 一家医疗软件初创公司计划开发一套面向中小型医疗机构的检验信息系统(LIS)。该系统需要具备多租户功能,以便不同医院独立使用,同时需要处理大量的检验数据录入和报告生成工作。

问题: 初创公司资金有限,无法维持庞大的研发团队。此外,不同医院对检验单据的格式、字段要求差异极大,如何在一个标准版本中支持这种个性化定制是最大的难题。

解决方案: 公司全栈采用 JeecgBoot 进行研发:

  1. 利用 JeecgBoot 的 Online 表单功能,为每家医院配置了独立的检验申请单和报告模板,无需为每家医院修改代码。
  2. 利用其代码生成器快速生成了样本管理、质控管理等标准模块,将开发重心完全集中在检验仪器数据对接算法上。
  3. 使用框架自带的数据权限控制,天然实现了 SaaS 多租户的数据隔离。

效果: 仅凭 3 名开发人员在 4 个月内完成了核心功能的开发。产品推向市场后,因系统配置灵活,实施人员可在半天内完成一家新医院的表单流程配置,极大地降低了交付成本。该系统在一年内成功部署了 20 家家二级以下医院,客户满意度较高。


对比分析

与同类方案对比

维度JeecgBootRuoYi (若依)Pig
技术栈Spring Boot 2/3 + Vue3/React + Ant DesignSpring Boot + Vue3 + Element PlusSpring Boot + Vue3 + Element Plus
代码生成器强大,支持在线表单设计与代码生成支持单表、树表生成,配置灵活基于MyBatis-Plus代码生成
低代码能力内置Online低代码开发平台,零代码构建表单/报表无低代码平台,依赖代码生成无低代码平台,依赖代码生成
权限模型RBAC,支持数据权限、部门权限RBAC,支持数据权限、部门权限RBAC,支持数据权限、多租户
易用性文档丰富,社区活跃,上手较快文档详细,结构清晰,适合学习模块化设计,微服务版本配置复杂
性能支持微服务架构,性能中等偏上中小型项目性能优异微服务架构性能较好
扩展性高度模块化,支持插件扩展模块化良好,扩展性中等微服务架构,扩展性强
成本开源免费,商业版需付费开源免费,无商业版开源免费
适用场景中大型企业级项目、快速开发中小型管理系统、学习参考微服务架构项目

优势分析

  • 低代码能力突出:JeecgBoot 内置的 Online 低代码平台允许通过拖拽方式快速生成表单和报表,显著减少开发工作量。
  • 技术栈先进:支持 Spring Boot 3 和 Vue3/React,紧跟技术前沿,适应现代开发需求。
  • 社区活跃:GitHub 星标数高,社区贡献活跃,问题解决速度快。
  • 代码生成器强大:支持单表、树表、主子表等多种代码生成模式,生成质量高。
  • 企业级支持:提供商业版和技术支持服务,适合对稳定性要求高的企业项目。

不足分析

  • 学习曲线较陡:低代码平台和代码生成器功能丰富,新手需要时间熟悉。
  • 微服务版本复杂:微服务架构的部署和配置相对复杂,对团队技术要求较高。
  • 定制化限制:低代码平台在高度定制化场景下可能灵活性不足,仍需手动编码。
  • 性能瓶颈:在超大规模数据处理时,低代码生成的代码可能需要优化。
  • 文档分散:部分高级功能的文档不够集中,查找特定问题可能需要多方搜索。

最佳实践

最佳实践指南

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

说明: JeecgBoot 的核心优势在于其强大的 Online 代码生成器。通过可视化界面配置表单、列表和查询条件,可以一键生成前后端代码,极大提升开发效率。

实施步骤:

  1. 在数据库中创建业务表。
  2. 登录系统,进入“Online 表单开发”菜单,导入数据库表。
  3. 配置表单布局、显示字段、查询条件以及校验规则。
  4. 点击“生成代码”,将生成的 Vue 前端代码和 Java 后端代码复制到对应的项目目录中。

注意事项:

  • 生成代码后,建议不要直接修改生成的核心文件,以免下次重新生成时覆盖自定义逻辑。应将业务扩展写在 Service 层或单独的组件中。
  • 对于复杂的业务逻辑,Online 生成器可能无法完全覆盖,此时应以生成代码为脚手架进行手动二次开发。

实践 2:遵循后端分层架构规范

说明: JeecgBoot 遵循标准的 MVC 分层架构。理解并严格遵守 Controller -> Service -> Mapper (Dao) 的职责划分,有助于保持代码的可维护性和低耦合度。

实施步骤:

  1. Controller 层:仅负责接收请求参数、调用 Service 层、返回响应结果。不包含业务逻辑。
  2. Service 层:编写核心业务逻辑。对于通用的 CRUD 操作,直接继承 ServiceImpl;对于复杂业务,在 Impl 类中实现。
  3. Mapper 层 (Dao):仅负责数据库交互。优先使用 Jeecg 提供的通用方法,复杂查询使用 MyBatis XML 或注解编写 SQL。

注意事项:

  • 避免在 Controller 中直接操作数据库。
  • 利用 JeecgBoot 提供的 JeecgBootExceptionHandler 进行全局异常处理,避免在 Controller 中进行大量的 try-catch 嵌套。

实践 3:利用权限注解进行接口控制

说明: 系统集成了 Shiro 或 Spring Security。使用框架提供的注解可以快速实现接口级别的权限控制,确保数据安全。

实施步骤:

  1. 在 Controller 接口方法上添加 @PermissionData 注解(用于数据权限控制)。
  2. 使用 @RequiresPermissions 注解限制只有拥有特定权限码(如 user:add)的用户才能访问该接口。
  3. 在前端菜单管理中配置对应的权限标识。

注意事项:

  • 确保前端发起请求时携带了有效的 Token (X-Access-Token)。
  • 开发阶段若需跳过权限验证,可在 Security 配置类中临时排除特定路径,生产环境务必关闭。

实践 4:前端组件封装与复用

说明: JeecgBoot Vue3 前端封装了大量常用组件(如 JDictSelectTag, JUpload, JAreaLinkage)。优先使用这些现成组件可以保证 UI 风格统一并减少开发量。

实施步骤:

  1. 在开发表单或列表页时,查阅官方文档的组件列表。
  2. 对于字典下拉框,使用 JDictSelectTag 而非原生 Ant Select,以实现自动翻译和缓存。
  3. 对于文件上传,使用 JUpload 组件以对接 MinIO 或 OSS。

注意事项:

  • 不要轻易修改 @/jeecg/components 下的源码,升级框架时可能会导致冲突。
  • 如果通用组件不满足需求,应通过 props 传参或 slot 插槽扩展,或者在其基础上封装新的业务组件。

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

说明: 使用系统自带的“数据字典”功能管理下拉选项和状态值,避免在代码中硬编码(Hardcoding)。同时,利用国际化机制支持多语言。

实施步骤:

  1. 在系统管理->数据字典中新增字典类型和字典项。
  2. 在前端开发时,使用 jdict 标签或 API 获取字典值。
  3. 对于需要国际化的文本,在 @/locales/lang/ 目录下对应的语言文件中添加 key-value 映射。

注意事项:

  • 字典项的编码(value)应使用数字或英文键,不要使用中文,以便于后续程序判断和国际化切换。
  • 修改字典后需清除 Redis 缓存或等待缓存过期,确保前端获取到最新数据。

实践 6:使用 AutoPojo 优化实体类开发

说明: JeecgBoot 提供了代码生成模板,支持生成带 Swagger 注解和校验注解的实体类。正确配置 Lombok 和校验注解可以简化代码。

实施步骤:

  1. 在数据库设计阶段,为字段添加注释。
  2. 生成代码时,确保勾选生成 Swagger 注解。
  3. 在实体类中使用 @Data, @EqualsAndHashCode 等 Lombok 注解。
  4. 使用 @NotNull, `@Size

性能优化建议

性能优化建议

优化 1:数据库查询优化与索引建立

说明: JeecgBoot 作为低代码平台,大量使用动态 SQL 查询。在数据量增长(单表超过 50 万行)后,未优化的查询(特别是 LIKE 模糊查询和多表关联)会导致数据库 CPU 飙升,接口响应变慢。

实施方法:

  1. 索引优化: 针对高频查询字段(如 create_time、状态字段)及排序字段建立联合索引。避免在 WHERE 子句中对字段进行函数运算。
  2. 分页优化: 对于深度分页(如页码大于 100),使用 id > last_id 的方式替代传统的 LIMIT offset, size,或利用搜索引擎(如 Elasticsearch)处理复杂查询。
  3. SQL 审计: 开启 MySQL 的慢查询日志(slow_query_log),定期分析并优化执行时间超过 500ms 的 SQL 语句。

预期效果: 典型复杂查询响应时间从 1-2 秒降低至 200ms 以内;数据库 CPU 使用率降低 30%-50%。


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

说明: 系统中存在大量读多写少的数据(如数据字典、系统配置、部门树结构)。每次请求都查询数据库会造成不必要的资源开销。

实施方法:

  1. 本地缓存: 使用 Caffeine 或 Guava Cache 缓存数据字典等变更频率低的数据,设置合理的过期时间(如 30 分钟)。
  2. 分布式缓存: 对于热点数据或需要共享的 Session,使用 Redis 进行缓存。
  3. 注解驱动: 利用 JeecgBoot 自身或 Spring Cache 的注解(如 @Cacheable),在 Service 层对方法返回结果进行缓存。

预期效果: 高频查询接口(如字典表获取)QPS(每秒查询率)提升 10 倍以上;数据库 IO 压力显著降低。


优化 3:前端首屏加载与构建优化

说明: JeecgBoot 前端基于 Vue,默认打包可能包含大量未使用的库代码,导致首屏加载时间长(白屏时间长),影响用户体验。

实施方法:

  1. 路由懒加载: 确保所有路由组件均采用动态 import 语法(() => import('./views/...')),按需加载。
  2. CDN 分离: 将 vueelement-uiecharts 等体积较大的第三方库从构建包中剔除,改为通过 CDN 引入。
  3. Gzip 压缩: 在 Nginx 配置中开启 Gzip 静态资源压缩,或在构建时生成 .gz 文件。
  4. Tree Shaking: 检查代码,确保只引入使用的组件(如按需引入 Element UI 组件)。

预期效果: 首屏加载时间减少 40%-60%;首包体积从 2MB+ 降低至 500KB 左右。


优化 4:异步处理与线程池配置

说明: 系统中可能包含耗时业务逻辑(如发送短信通知、生成复杂报表、记录操作日志)。如果在主线程同步执行,会阻塞请求响应,导致系统吞吐量下降。

实施方法:

  1. 异步注解: 在 Service 层使用 @Async 注解将非核心逻辑异步化。
  2. 消息队列: 对于高并发下的写操作或耗时任务,引入 RabbitMQ 或 Kafka 进行削峰填谷,异步消费处理。
  3. 线程池调优: 配置独立的业务线程池,避免使用默认的简单线程池,合理设置核心线程数和队列大小(参考公式:CPU 核心数 / (1 - 阻塞系数))。

预期效果: 核心业务接口平均响应时间(RT)降低 50% 以上;系统并发处理能力提升 2-3 倍。


优化 5:ORM 层面 N+1 问题与批量操作优化

**


学习要点

  • JeecgBoot 是一款基于代码生成器的低代码开发平台,显著提升开发效率
  • 支持微服务架构,采用 Spring Boot + Vue3/React 技术栈
  • 提供在线表单设计器,支持拖拽式快速构建业务表单
  • 内置权限管理系统,包含用户、角色、菜单等企业级功能
  • 集成主流技术栈(MyBatis-Plus、Redis 等),开箱即用
  • 支持多数据源配置与分布式部署,适合复杂业务场景
  • 提供丰富的 UI 组件库,加速前端开发流程

学习路径

学习路径

阶段 1:环境搭建与基础入门

学习内容:

  • JeecgBoot 的技术架构与核心特性(低代码、代码生成器)
  • 后端基础环境搭建(JDK, Maven, MySQL, Redis, IntelliJ IDEA)
  • 前端基础环境搭建(Node.js, Vue 3, Ant Design Vue)
  • 快速启动官方 Demo 项目并跑通流程
  • 熟悉后台管理系统的基本菜单与功能模块

学习时间: 1-2周

学习资源:

  • JeecgBoot 官方文档 - 快速入门章节
  • JeecgBoot 官方 GitHub 仓库 README
  • Bilibili 搜索 “JeecgBoot 入门教程”

学习建议: 务必亲手搭建环境,不要只看不动手。重点在于理解前后端分离的启动流程,以及如何访问自带的示例功能。


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

学习内容:

  • 在线设计器的使用(表单设计、报表设计)
  • 代码生成器的配置与使用(单表、树表、主子表)
  • 基于 MyBatis-Plus 的后端 CRUD 开发
  • 前端页面组件的使用与基础二次开发
  • 系统权限管理(用户、角色、菜单、部门配置)

学习时间: 2-3周

学习资源:

  • JeecgBoot 官方文档 - 代码生成与开发指南
  • JeecgBoot 官方技术文档 wiki
  • 社区精选实战案例

学习建议: 尝试设计一个简单的业务场景(如“订单管理”),使用代码生成器生成基础代码,然后在此基础上进行修改,熟悉生成的代码结构。


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

学习内容:

  • 自定义接口开发与后端逻辑扩展
  • 前端高级组件封装与插槽使用
  • 理解 JeecgBoot 的核心机制(如权限注解 @Permission、数据字典、切面日志)
  • 常见企业级功能集成(文件上传、消息通知、定时任务)
  • SQL 性能优化与索引优化基础

学习时间: 3-4周

学习资源:

  • JeecgBoot 源码
  • 官方论坛与知识库
  • Vue 3 官方文档(配合理解前端封装)

学习建议: 此阶段需要阅读部分源码,理解框架是如何通过注解和拦截器处理权限和日志的。尝试修改源码或重写部分方法以满足特定业务需求。


阶段 4:微服务架构与部署运维

学习内容:

  • JeecgBoot Cloud 微服务架构解析
  • 微服务模块的拆分与通信
  • Docker 容器化部署
  • Nacos 注册中心与配置中心的使用
  • 生产环境部署与监控

学习时间: 2-3周

学习资源:

  • JeecgBoot Cloud 版本官方文档
  • Spring Cloud Alibaba 官方文档
  • Docker 官方文档

学习建议: 如果项目涉及微服务,重点学习 Nacos 和 Gateway 的配置。通过 Docker Compose 编排服务,在本地模拟一套完整的微服务运行环境。


常见问题

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

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

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,开源框架目前主要采用前后端分离架构(技术栈:SpringBoot + Ant Design Vue / Vue3)。它主要解决的问题是:

  1. 提升效率:通过在线代码生成器,可以一键生成前后端代码(包括 Controller、Service、Dao、Entity、Vue 页面等),极大地减少了重复编写 CRUD(增删改查)代码的工作量。
  2. 降低门槛:封装了诸多开箱即用的功能(如用户权限、表单、报表、字典等),让初级开发者也能快速构建企业级管理系统。
  3. 规范架构:提供了一套标准化的开发模板和架构设计,有助于团队协作和项目维护。

2: JeecgBoot 的技术栈是什么?支持哪些数据库?

2: JeecgBoot 的技术栈是什么?支持哪些数据库?

A:

  • 后端技术栈:基于 Spring Boot 2.x/3.x,持久层使用 MyBatis-Plus,集成了 Spring Security(用于权限认证),支持 Redis 缓存。
  • 前端技术栈:主要提供基于 Vue 2.x (Ant Design Vue) 和 Vue 3.x (Ant Design Vue) 的两个版本。
  • 数据库支持:原生支持 MySQL、PostgreSQL、Oracle、SQL Server 等主流关系型数据库。由于其底层使用了 Mybatis-Plus,理论上只要 JDBC 支持的数据库均可兼容,但官方主要维护上述几种数据库的脚本和测试。

3: 如何运行 JeecgBoot 项目?启动流程是怎样的?

3: 如何运行 JeecgBoot 项目?启动流程是怎样的?

A: 启动 JeecgBoot 通常需要遵循以下步骤:

  1. 环境准备:确保本地已安装 JDK (1.8+ 或 17+)、Node.js (12+)、Maven 以及 Redis 和 MySQL 数据库。
  2. 后端启动
    • 执行 db 目录下的 SQL 脚本初始化数据库。
    • 修改 application.yml 配置文件,配置数据库连接账号和 Redis 地址。
    • 运行 JeecgSystemApplication.java 主类启动后端服务。
  3. 前端启动
    • 进入前端目录 ant-design-vue-jeecg
    • 执行 npm installyarn install 安装依赖。
    • 执行 npm run serve 启动开发服务器。
  4. 访问:浏览器访问前端地址(通常是 localhost:3100),默认管理员账号/密码为 admin/123456

4: JeecgBoot 的 Online 代码生成器如何使用?

4: JeecgBoot 的 Online 代码生成器如何使用?

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

  1. 建表:在数据库中创建一张业务表。
  2. 导入:登录系统,进入“在线开发” -> “Online 表单开发”,点击“导入”按钮,系统会自动读取数据库中的表结构并配置到系统中。
  3. 配置:在列表中点击“配置”,设置页面显示的表头、查询条件、表单验证规则、JS 增强逻辑等。
  4. 生成代码:配置完成后,点击“生成代码”,系统会生成一个 ZIP 包。
  5. 代码整合:解压 ZIP 包,将 Java 文件放入后端对应的目录下,将 Vue 文件放入前端对应的目录下,重启服务即可看到菜单和功能。

5: JeecgBoot 中的权限管理是如何设计的?

5: JeecgBoot 中的权限管理是如何设计的?

A: JeecgBoot 实现了基于 RBAC(Role-Based Access Control,基于角色的访问控制)的权限模型,主要包含以下核心概念:

  1. 用户:系统的操作者。
  2. 角色:权限的集合,用于给用户分配权限。
  3. 权限:具体的操作许可,分为:
    • 菜单权限:控制用户能看到哪些导航菜单。
    • 按钮权限:控制用户在页面上能看到哪些操作按钮(如新增、删除、导出)。
    • 数据权限:控制用户能看到哪些数据(例如:只能看本部门数据)。
  4. 组件:通过前端路由守卫和后端 Spring Security 接口校验,双重保障接口安全。

6: JeecgBoot 社区版和商业版(或增强版)有什么区别?

6: JeecgBoot 社区版和商业版(或增强版)有什么区别?

A: JeecgBoot 遵循开源协议,但为了支持项目发展,提供了不同版本:

  • JeecgBoot (开源版):基于 Apache 2.0 协议,完全免费。包含了基础的代码生成、权限管理、表单、报表等核心功能,足以满足大多数中小型项目的需求。
  • JeecgBoot 商业版/企业版:提供更多高级企业级功能,例如:大屏设计器、报表设计器(积木报表)、代码生成器的更多模板(如

思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**: 在 JeecgBoot 的代码生成器配置中,如何将数据库表中的 varchar 类型字段映射为前端组件中的“下拉框”而不是默认的“文本框”?请描述配置步骤。

提示**: 关注代码生成器中的“表单配置”或“字段属性设置”,思考除了数据库类型外,哪个属性决定了 UI 组件的类型(例如 dictCodewidget_type)。


实践建议

基于 JeecgBoot 作为 AI 低代码平台的特性,以下是针对实际开发与落地场景的 6 条实践建议:

  1. 优先使用 Online 低代码开发进行 CRUD 增量迭代

    • 场景:在项目初期或需要频繁调整表单字段、列表查询条件时。
    • 建议:不要直接编写 Vue 和 Java 代码。应熟练使用 “Online 在线表单” 功能。通过数据库表结构逆向生成表单和列表,配置 “Online 报表” 实现复杂查询。
    • 最佳实践:对于复杂的业务逻辑,先通过 Online 开发快速搭建原型,确认需求无误后,再通过代码生成器下载代码进行深度定制。这样能避免因需求变更导致的大规模代码重构。
  2. AI 助手与知识库的领域对齐

    • 场景:利用 JeecgBoot 的 AI 聊天助手或知识库功能回答业务问题。
    • 建议:不要直接将原始文档丢入通用知识库。应构建特定领域的知识库,并针对业务术语进行微调。
    • 常见陷阱:知识库切片过大或上下文关联性差会导致 AI 产生幻觉。建议将操作手册、API 文档按功能模块拆分,并定期更新知识库内容,确保 AI 回答的准确性。
  3. 严格遵循代码生成器的覆盖规则

    • 场景:使用代码生成器生成前后端代码后,需要修改业务逻辑。
    • 建议:理解生成器的“合并策略”。通常情况下,生成的 Controller、Service 和 Vue 文件中都有明确的“受保护区域”标记。
    • 最佳实践:将自定义业务逻辑严格写在标记的非覆盖区域内。如果必须修改生成的核心结构,建议将生成的类设为父类,通过继承的方式扩展功能,防止下次重新生成代码时自定义逻辑丢失。
  4. 合理利用 AI 流程编排 替代硬编码业务流

    • 场景:涉及多系统调用、复杂数据处理或审批流的业务。
    • 建议:对于非核心且逻辑易变的流程,优先使用 AI 流程编排或工作流引擎处理,而不是在 Java 代码中写死 if-else
    • 最佳实践:将通用的微服务能力(如发送通知、查询数据库、调用 AI 模型)封装为流程节点。通过拖拽节点配置业务流,可以显著提升系统的可维护性和灵活性,同时也方便非技术人员参与逻辑调整。
  5. 权限控制的细粒度配置

    • 场景:企业级应用对数据安全要求极高。
    • 建议:JeecgBoot 自带了强大的 Shiro 或 Spring Security 集成以及权限管理组件。
    • 常见陷阱:仅依赖菜单级别的权限控制是不够的。必须配置“数据权限”规则。
    • 操作:在系统管理中明确配置部门、角色、用户的可见范围(如:仅查看本部门数据),并在代码生成时勾选“数据权限”字段,确保生成的 SQL 自动带上权限过滤条件。
  6. 前端组件化与 AI 对话式操作的解耦

    • 场景:使用聊天式业务操作功能。
    • 建议:虽然平台支持“聊天式业务操作”,但在实际落地中,不要试图用 AI 对话框完全替代传统的表单按钮。
    • 最佳实践:将 AI 操作作为高频、模糊查询或快捷指令的入口(例如:“帮我查一下上个月的销售额”),对于复杂的精确录入(如填写 20 个字段的合同),仍保留传统表单界面。将 AI 识别的意图映射到后端的 API 接口,保持前端组件的独立性,便于维护。

引用

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



站内链接

相关文章