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,215 (+11 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 应用。它集成了模型管理、知识库及流程编排等核心功能,允许开发者在不牺牲灵活性的前提下显著减少重复编码工作。本文将梳理该平台的技术架构与核心特性,助你评估其是否适合作为你的数字化基座。


摘要

JeecgBoot 项目总结

1. 项目概述 JeecgBoot 是一个基于 Java 语言的企业级 AI 低代码开发平台(当前 GitHub 星标数超过 4.5 万)。它旨在通过智能化和自动化的方式,赋能企业快速构建软件应用,显著提升开发效率并降低成本,同时保持开发的灵活性。

2. 核心定位与技术栈

  • 定位: 结合了代码生成、可视化开发与 AI 能力的统一平台。
  • 技术基础: 构建于 Spring Boot 3.5.5Vue 3Spring Cloud Alibaba 2023 之上。

3. 主要功能与特性

  • AI 应用平台: 涵盖 AI 应用、AI 模型、聊天助手、知识库管理、AI 流程编排、MCP(模型上下文协议)及插件系统,并支持聊天式业务操作。
  • 强大的代码生成器: 支持前后端代码一键生成(基于 Maven),无需手写基础代码。
  • 多种开发模式: 提供代码生成、可视化开发等多种途径以适应不同需求。

4. 文档与架构 项目包含详尽的文档结构,涵盖技术栈、环境搭建、架构设计、核心特性及快速入门指南等模块。


评论

总体判断

JeecgBoot 是国内少有的将“低代码平台”与“AI工程化”深度融合的开源标杆,它成功地将企业级快速开发的“硬需求”与大模型时代的“软交互”结合。它不仅仅是一个代码生成器,更是一个进化中的企业级应用底座,在保持技术栈主流(Spring Boot + Vue)的前提下,通过AI赋能显著降低了CRUD开发的边际成本。

深入评价依据

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

  • 事实: 描述中明确提到涵盖“AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件,聊天式业务操作”。
  • 推断: 传统低代码平台(如早期Jeecg)主要依赖在线配置表单和代码模板。该版本的创新点在于引入了RAG(检索增强生成)和Agent(智能体)概念。特别是“聊天式业务操作”和“MCP(Model Context Protocol)”的支持,意味着系统试图让用户通过自然语言直接驱动业务逻辑,而非仅仅通过UI点击。这标志着从“UI驱动”向“Intent(意图)驱动”的技术架构转型。

2. 实用价值:解决“重复造轮子”与“AI落地难”的双重痛点

  • 事实: 项目强调“一键生成前后端代码,无需手写代码”,且星标数高达4.5万+。
  • 推断: 在国内B2B开发场景中,80%的时间浪费在增删改查和权限管理上。JeecgBoot的核心价值在于将这部分成本几乎降为零。同时,企业接入AI通常面临向量数据库、知识库管理等复杂技术门槛,JeecgBoot将这些能力封装成标准模块,使得中小企业可以低成本地在现有ERP/OA中集成“智能客服”或“知识库问答”,极大地扩展了其实用边界。

3. 代码质量与架构:主流技术栈的稳健与模块化设计

  • 事实: 后端采用Java (Spring Boot),前端采用Vue3,且拥有独立的 jeecg-bootjeecgboot-vue3 模块。
  • 推断: 技术选型非常务实且稳健,选择了国内就业市场最广的栈,降低了团队招聘和维护成本。从目录结构看,前后端分离彻底,代码生成器通常基于成熟的模板引擎(如Freemarker/Velocity)架构,保证了生成代码的可读性和可修改性。这种“生成后即可脱离平台运行”的模式,相比某些强制绑定运行时的闭源低代码平台,代码质量更高,灵活性更强。

4. 社区活跃度:国内开源生态的“头部玩家”

  • 事实: GitHub星标数超过45,000,且README提供了中英文双语文档及专门的AI文档。
  • 推断: 在Java开源领域,这个量级代表了极高的社区认可度。高活跃度意味着遇到Bug时能快速在社区找到解决方案,同时也意味着有大量第三方插件和教程可供参考。文档的细致程度(包括专门的AI文档)表明项目维护者非常重视开发者的上手体验。

5. 潜在问题与改进建议:复杂业务的AI幻觉与定制化冲突

  • 推断: 虽然代码生成器很强大,但“AI生成业务逻辑”目前可能存在准确率问题。例如,通过AI生成的复杂审批流或统计报表代码,可能需要资深开发人员进行大量调试。此外,低代码平台往往在应对高度定制化的非标业务逻辑时,修改生成的代码反而比手写更麻烦(“黑盒”问题)。建议项目方进一步公开AI生成的Prompt模板或规则,允许开发者微调AI的行为。

6. 对比优势:与若依(RuoYi)及纯SaaS平台的差异

  • 推断: 相比国内另一热门框架“若依”,JeecgBoot的“低代码”属性更强,其Online在线表单开发功能是若依原生版所不具备的(若依更偏向于脚手架)。相比AppSheet或Mendix等国外SaaS低代码平台,JeecgBoot的优势在于“私有化部署”和“源码级掌控”,这对于对数据安全敏感的国企和大型制造业来说是决定性因素。

边界条件与验证清单

不适用场景:

  • 极高并发/微服务场景: 虽然支持Spring Boot,但其单体架构倾向(Monolith)可能不适合需要极端水平扩展的亿级流量互联网大厂核心链路(除非进行大量重构)。
  • 算法密集型应用: 专注于业务逻辑开发,不适合做深度学习模型训练或高性能计算中间件。

快速验证清单(Checklist):

  1. AI能力实测: 部署Demo后,直接使用“AI聊天助手”询问一个基于当前数据库的复杂统计问题(如“上月销售额Top5的客户”),验证其是否真正能将自然语言转为SQL并返回正确图表。
  2. 代码生成质量: 创建一张包含10个字段的表,生成CRUD代码,检查生成的Vue页面代码是否包含TypeScript类型定义,以及后端Controller是否符合RESTful规范。
  3. 二次开发干扰度: 修改生成的代码后,再次通过平台修改表结构(增加字段),重新生成代码,检查是否能够保留之前的业务逻辑修改(验证Merge机制)。

技术分析

JeecgBoot 深度技术分析报告

1. 技术架构深度剖析

JeecgBoot 的架构设计体现了典型的**“前后端分离 + 元数据驱动”**的企业级低代码平台思想。

技术栈与架构模式

  • 后端核心:基于 Spring Boot 微服务架构,采用 Spring Security + JWT 实现无状态的认证授权。数据访问层集成了 MyBatis-Plus,这是其实现“代码生成”和“通用CRUD”的核心基石。
  • 前端核心:采用 Vue 3 + Ant Design Vue (Vben Admin) 构建现代化交互界面。通过 TypeScript 支持增强了代码的健壮性。
  • 架构模式:采用了 B/S 架构元数据编程 模式。系统不直接输出业务代码,而是输出“配置元数据”,运行时引擎解析元数据动态渲染页面和执行逻辑。

核心模块设计

  1. 代码生成器:这是 JeecgBoot 的心脏。它通过读取数据库表结构,结合 Freemarker 或 Velocity 模板引擎,一键生成前后端代码。
  2. Online 低代码开发:这是其最大的技术亮点。它允许在不生成代码的情况下,通过配置表单、报表和参数,在线构建业务模块。技术上,它依赖于一套强大的动态数据源通用 CRUD 组件
  3. AI 引擎集成:最新版本引入了 AI 模块,通过 Langchain 或 SDK 集成大模型(LLM),实现 SQL 生成、代码辅助和知识库问答。

架构优势分析

  • 降本增效:通过元数据驱动,将通用的增删改查(CRUD)抽象化,减少了 80% 的重复劳动。
  • 技术栈统一:前后端均采用业界主流且成熟的技术栈,降低了团队的学习成本和招人难度。
  • 扩展性强:基于 Spring Boot 的插件化设计,使得用户可以很容易地在生成代码的基础上进行二次开发,平衡了“低代码”与“灵活性”。

2. 核心功能详细解读

主要功能与场景

JeecgBoot 核心定位为**“企业级快速开发平台”“AI 应用搭建平台”**。

  • 智能代码生成:支持单表、树表、主子表的一键生成。生成的代码包含完整的列表、表单、校验和权限控制。
  • Online 在线开发:无需重启服务,在线配置表单(表单布局、控件属性、数据字典)、配置报表(图表联动、SQL 报表)。
  • AI 助手:通过自然语言生成 SQL、修复 Bug、解释代码,甚至通过聊天式交互操作业务系统(如“帮我查询上个月的销售额”)。
  • 流程编排:集成了 Flowable 或 Camunda 工作流引擎,支持复杂的业务审批流。

解决的关键问题

它主要解决了 CRUD 开发的重复性劳动业务变更的响应速度 问题。传统开发中,改一个表单字段需要改数据库、改后端实体、改接口、改前端页面,JeecgBoot 通过配置化将这一过程自动化。

与同类工具对比

  • 对比钉钉/简道云(SaaS 低代码):JeecgBoot 是 PaaS 级的私有化部署方案。它拥有源码,数据完全私有,更适合对数据安全敏感的国企、军工或大型企业。
  • 对比 JHipster:JHipster 更偏向于代码生成器,生成后主要靠手写代码;JeecgBoot 提供了更强大的运行时配置能力,生成的代码集成了更多开箱即用的企业功能(如数据权限、多租户)。

3. 技术实现细节

关键技术方案

  • 通用 Mapper 与 Service:利用 MyBatis-Plus 的 BaseMapperServiceImpl,JeecgBoot 封装了统一的 CRUD 接口。代码生成器生成的代码直接继承这些基类,从而无需编写任何 SQL 即可实现分页、查询、删除。
  • 权限控制:采用了 RBAC (Role-Based Access Control) 模型,并独创了 数据权限 切片。通过 AOP 拦截 SQL,根据用户角色自动拼接 SQL 的 WHERE 条件(如 WHERE create_by = 'userId'),实现了细粒度的数据隔离。
  • 前端动态渲染:前端维护了一套 JeecgListJeecgForm 组件。它们接收 JSON 配置对象,通过 v-for 循环动态渲染 a-inputa-select 等原子组件,实现了表单的动态化。

代码组织与设计模式

  • 模块化设计jeecg-boot (后端) 和 jeecgboot-vue3 (前端) 分离,结构清晰。
  • 策略模式:在代码生成器中,针对不同的数据库支持不同的查询策略。

性能与扩展性

  • 缓存机制:集成了 Redis,用于缓存用户信息、权限数据、数据字典及在线表单配置,极大减轻了数据库压力。
  • 微服务支持:提供了 Spring Cloud 版本,支持将模块拆分为微服务,适应高并发场景。

4. 适用场景分析

适合的项目

  1. 企业内部管理系统(OA、ERP、CRM、HR):这类系统特点是表单多、逻辑相对固定、权限复杂,JeecgBoot 是此类项目的杀手锏。
  2. SaaS 产品 MVP:需要快速验证商业模式,JeecgBoot 能以最快速度搭建出可用的原型。
  3. 数据采集与报表系统:利用其强大的 Online 报表功能,可以快速搭建数据大屏和报表中心。

不适合的场景

  1. 高并发互联网 C 端应用:如秒杀系统。虽然框架支持高并发,但其生成的通用逻辑可能过于厚重,需要大量优化和剥离。
  2. 极度复杂的业务逻辑:如果业务逻辑 80% 是特殊的算法和流程,只有 20% 是简单的增删改查,使用 JeecgBoot 的“脚手架”反而可能带来束缚。
  3. 对 UI 交互有极致要求的场景:虽然基于 Vue3 很灵活,但 Online 生成的表单布局受限于组件库的规范,很难实现高度定制化的动效。

集成方式

通常作为 脚手架 使用。团队 Fork 代码库,修改基础包名,作为私有 Git 仓库进行维护。


5. 发展趋势展望

技术演进方向

  • AI Agent 深度融合:从“辅助生成代码”向“Agent 自主操作”演进。未来可能通过对话直接修改业务逻辑配置,而不仅仅是生成代码片段。
  • 云原生与 Serverless:进一步容器化,支持 Kubernetes 一键部署,降低运维成本。
  • 低代码 DSL 标准化:定义自己的领域特定语言(DSL),使得配置文件可以跨平台迁移。

社区反馈与改进

目前社区活跃度高,但文档的更新速度有时滞后于版本迭代。AI 模块目前尚处于快速迭代期,稳定性和幻觉问题仍需优化。


6. 学习建议

适合人群

  • 初中级 Java 开发者:能快速学习到企业级项目的规范分层、权限设计和安全框架整合。
  • 前端 Vue 开发者:可以学习到如何封装复杂的业务组件以及如何处理动态表单渲染。

学习路径

  1. 环境搭建:成功运行 jeecg-boot 后端和 jeecgboot-vue3 前端。
  2. 代码生成实践:创建一张数据库表,使用代码生成功能生成代码,并运行调试。
  3. Online 配置实战:不生成代码,直接使用 Online 功能配置一个表单和报表。
  4. 源码阅读:重点阅读 org.jeecg.modules.system (权限模块) 和前端 src/components/jeecg (通用组件)。

7. 最佳实践建议

正确使用方式

  • “生成即修改”:不要指望 100% 生成代码。最佳实践是生成基础 CRUD,然后在生成的代码中扩展业务逻辑。严禁直接修改底层基类代码,以免升级时冲突。
  • 善用数据权限:在开发多租户或部门级数据隔离时,优先使用框架提供的数据权限注解,避免手写大量重复 SQL。

常见问题与优化

  • N+1 查询问题:在使用关联查询时,注意 MyBatis-Plus 的注解配置,避免循环引用导致的性能问题。
  • 前端包体积:随着引入组件增多,打包体积会变大。建议配置路由懒加载,并使用 CDN 加载第三方库。

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

抽象层与复杂性转移

JeecgBoot 在**“配置层”做了极高的抽象。它将开发阶段的复杂性转移到了框架维护阶段运行时解析阶段**。

  • 代价:为了实现“不写代码”,框架内部必须处理极其复杂的元数据映射和异常处理。对于用户而言,一旦出现非预期行为,排查难度往往高于手写代码,因为你需要理解框架的“黑盒”逻辑。

价值取向

  • 速度 > 纯粹的性能:它默认优先交付速度。反射、动态 SQL、JSON 解析都会带来微小的性能损耗,但在企业管理系统中,这种损耗通常被网络延迟掩盖,是可以接受的权衡。
  • 规范 > 自由:它强制规定了代码结构(Controller -> Service -> Mapper)。这保证了团队代码的一致性,但也牺牲了架构师在单体应用层面的自由发挥。

工程哲学范式

其解决问题的范式是**“元数据驱动编程”。它认为业务本质是数据 + 流程 + 界面**,只要这三者被结构化描述,代码就应该自动生成。

  • 误用风险:最容易误用的是试图用 Online 配置去解决所有问题,导致系统充满了难以维护的“隐形逻辑”。应当将 Online 用于简单的 CRUD,复杂的业务逻辑必须回归代码。

可证伪的判断

  1. 开发效率指标:对于一个包含 20 个标准表单(增删改查)的后台管理模块,使用 JeecgBoot 生成并调整上线的时间,应小于传统手写代码时间的 20%
  2. 学习曲线测试:一个熟悉 Spring Boot 但未接触过 JeecgBoot 的开发者,能在 4 小时内完成环境搭建并跑通第一个“代码生成到运行”的全流程。
  3. 灵活性代价:当需求变更涉及修改底层逻辑(如审批流程引擎变更)时,修改配置文件的时间成本与修改代码的成本之比应大于 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 示例1:使用JeecgBoot的API进行数据查询
import requests

def query_data_from_jeecgboot():
    """
    从JeecgBoot后端查询数据示例
    需要配置正确的API地址和认证token
    """
    # JeecgBoot的API基础URL
    base_url = "http://localhost:8080/jeecg-boot"
    
    # 设置请求头,通常需要包含认证token
    headers = {
        "X-Access-Token": "your_token_here",  # 替换为实际的token
        "Content-Type": "application/json"
    }
    
    # 查询参数
    params = {
        "pageSize": 10,  # 每页记录数
        "pageNo": 1,     # 当前页码
        "column": "createTime",  # 排序字段
        "order": "desc"   # 排序方式
    }
    
    try:
        # 发送GET请求
        response = requests.get(
            f"{base_url}/sys/user/list",
            headers=headers,
            params=params
        )
        
        # 检查响应状态
        if response.status_code == 200:
            data = response.json()
            print(f"查询成功,共{data['result']['total']}条记录")
            return data['result']['records']
        else:
            print(f"查询失败,状态码:{response.status_code}")
            return None
    except Exception as e:
        print(f"发生错误:{str(e)}")
        return None
  1. 设置API基础URL和认证token
  2. 构造查询参数(分页、排序等)
  3. 发送GET请求并处理响应
  4. 错误处理机制
 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
46
# 示例2:使用JeecgBoot的API进行数据创建
import requests

def create_data_in_jeecgboot():
    """
    向JeecgBoot后端创建数据示例
    需要配置正确的API地址和认证token
    """
    base_url = "http://localhost:8080/jeecg-boot"
    
    headers = {
        "X-Access-Token": "your_token_here",
        "Content-Type": "application/json"
    }
    
    # 要创建的数据
    new_data = {
        "username": "test_user",
        "realname": "测试用户",
        "password": "123456",
        "email": "test@example.com",
        "phone": "13800138000"
    }
    
    try:
        # 发送POST请求
        response = requests.post(
            f"{base_url}/sys/user/add",
            headers=headers,
            json=new_data
        )
        
        if response.status_code == 200:
            result = response.json()
            if result['success']:
                print("数据创建成功")
                return result['result']
            else:
                print(f"创建失败:{result['message']}")
                return None
        else:
            print(f"请求失败,状态码:{response.status_code}")
            return None
    except Exception as e:
        print(f"发生错误:{str(e)}")
        return None
  1. 设置请求头和认证信息
  2. 构造要创建的数据对象
  3. 发送POST请求并处理响应
  4. 处理成功和失败的情况
 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
# 示例3:使用JeecgBoot的API进行数据更新
import requests

def update_data_in_jeecgboot(user_id):
    """
    更新JeecgBoot后端数据示例
    :param user_id: 要更新的用户ID
    """
    base_url = "http://localhost:8080/jeecg-boot"
    
    headers = {
        "X-Access-Token": "your_token_here",
        "Content-Type": "application/json"
    }
    
    # 更新的数据
    update_data = {
        "id": user_id,
        "realname": "更新后的姓名",
        "email": "updated@example.com"
    }
    
    try:
        # 发送PUT请求
        response = requests.put(
            f"{base_url}/sys/user/edit",
            headers=headers,
            json=update_data
        )
        
        if response.status_code == 200:
            result = response.json()
            if result['success']:
                print("数据更新成功")
                return result['result']
            else:
                print(f"更新失败:{result['message']}")
                return None
        else:
            print(f"请求失败,状态码:{response.status_code}")
            return None
    except Exception as e:
        print(f"发生错误:{str(e)}")
        return None

案例研究

1:某大型国有能源集团 - 设备物资管理系统

1:某大型国有能源集团 - 设备物资管理系统

背景: 该集团拥有数十个下属分公司和数万名员工,业务涵盖煤炭、电力、新能源等领域。随着业务扩张,原有的设备物资管理系统技术架构老旧,难以支撑集团化统一采购和设备全生命周期管理的需求。

问题:

  1. 开发效率低下:原有系统采用传统代码开发模式,新需求上线周期长达数月。
  2. 代码重复率高:各分公司存在大量相似的业务功能(如审批流、报表),但代码无法复用,维护成本巨大。
  3. 二次开发困难:系统耦合度高,新增自定义字段或调整业务逻辑极易引发系统崩溃。

解决方案: 集团技术团队决定基于 JeecgBoot 搭建全新的低代码开发平台。利用 JeecgBoot 的 Online 在线开发表单和代码生成器,快速构建了基础服务框架,并针对设备管理模块进行了深度定制。

效果:

  1. 开发效率提升 60%:通过在线配置表单和报表,常规的 CRUD(增删改查)功能无需编写代码即可生成,开发人员仅需关注复杂的业务逻辑。
  2. 统一技术栈:全集团新系统统一采用前后端分离架构(SpringBoot + Vue),解决了以前技术栈混乱的问题。
  3. 快速响应需求:分公司提出的个性化报表需求,由原来的 2 周开发缩短至 1 天配置完成,极大提升了业务部门的满意度。

2:某省级医疗信息化平台 - 医院绩效与考核系统

2:某省级医疗信息化平台 - 医院绩效与考核系统

背景: 该平台负责为省内多家公立医院提供信息化服务。随着医疗改革深入,医院对精细化运营管理要求提高,急需一套能够灵活配置考核指标、实时计算数据的绩效管理系统。

问题:

  1. 业务规则复杂多变:不同科室、不同岗位的绩效计算规则差异巨大,且政策经常调整,硬编码方式无法适应。
  2. 数据量大且实时性要求高:需要从HIS(医院信息系统)抽取海量诊疗数据并进行实时统计,对系统性能要求极高。
  3. 交互体验差:旧系统界面繁琐,医生录入数据操作不便,导致数据录入错误率高。

解决方案: 项目组采用 JeecgBoot 作为核心开发框架,重点利用其强大的代码生成能力和内置的权限管理机制。针对复杂的绩效计算,结合 JeecgBoot 的流程引擎接口对接了规则引擎,前端使用其封装的 Vue 组件实现了复杂的数据录入交互。

效果:

  1. 灵活配置考核指标:利用 JeecgBoot 的在线表单功能,管理员可以通过拖拽方式自定义绩效指标项,无需技术人员介入即可适应政策变化。
  2. 性能优异:基于 JeecgBoot 优化的 MyBatis-Plus 增强功能,系统在处理百万级数据查询时响应时间控制在秒级,满足了月底结算的高并发需求。
  3. 界面友好:使用 JeecgBoot 提供的 Ant Design of Vue 封装组件,构建了现代化、响应式的用户界面,医生操作培训时间缩短了 50%。

3:某智慧城市创业公司 - 物联网(IoT)设备运维中台

3:某智慧城市创业公司 - 物联网(IoT)设备运维中台

背景: 该公司专注于城市路灯与安防监控的智能化改造。随着接入的智能设备数量从几千台激增至数十万台,原有的单体管理应用面临严峻挑战,急需转型为微服务架构的运维中台。

问题:

  1. 系统扩展性差:单体应用无法承受设备上报的高频数据吞吐,且无法根据负载动态扩容。
  2. 交付周期长:每当对接一个新的硬件厂商协议,就需要重新开发一套管理后台,耗时耗力。
  3. 移动端支持弱:现场运维人员主要使用手机,但旧系统缺乏良好的移动端适配。

解决方案: 公司重构底层架构,选用 JeecgBoot 作为微服务网关与业务模块的开发脚手架。利用其微服务版本快速搭建了服务注册中心、配置中心和网关,并使用 JeecgBoot 的移动端代码生成器快速生成了配套的小程序和 App 管理端。

效果:

  1. 快速构建微服务:JeecgBoot 提供了开箱即用的微服务基础设施,使得团队在 2 个月内完成了从单体到微服务的平滑迁移,系统稳定性显著提升。
  2. 快速交付项目:对于新客户的上线,只需通过 JeecgBoot 生成基础模块,然后专注于设备协议解析插件开发,项目交付周期缩短了 40%。
  3. 多端协同:实现了 PC 端后台管理与移动端现场运维的数据实时同步,运维工单处理效率提升了 30%。

对比分析

与同类方案对比

维度jeecgbootRuoYi (若依)Ant Design Pro
技术栈Spring Boot + Vue/ReactSpring Boot + Vue/ReactUmi + Ant Design + React
代码生成器强大,支持在线表单设计基础,支持单表和树表生成基础,需手动配置或使用插件
低代码能力内置低代码平台,可视化拖拽无内置低代码平台无内置低代码平台
学习曲线中等,需熟悉其代码生成机制较低,文档详细,社区活跃较高,需深入理解React生态
扩展性高,模块化设计中等,适合中小型项目高,适合大型复杂项目
性能中等,依赖代码生成优化中等,适合常规业务高,React生态优化
社区支持活跃,国内用户多活跃,国内用户多全球化,文档丰富

优势分析

  • 优势1:强大的代码生成器
    JeecgBoot的代码生成器支持在线表单设计,可快速生成CRUD代码,显著减少重复开发工作。

  • 优势2:内置低代码平台
    提供可视化拖拽功能,适合快速搭建业务系统,降低开发门槛。

  • 优势3:国内社区活跃
    拥有大量国内用户和开发者,问题解决速度快,文档和教程丰富。

不足分析

  • 不足1:性能优化有限
    依赖代码生成器生成的代码可能存在冗余,性能优化需要手动调整。

  • 不足2:学习曲线较陡
    需要熟悉其代码生成机制和低代码平台,新手可能需要较长时间适应。

  • 不足3:国际化支持较弱
    主要面向国内市场,国际化功能和文档相对较少。


最佳实践

最佳实践指南

实践 1:严格遵循代码生成器规范

说明: JeecgBoot 的核心优势在于其强大的代码生成器(Online Coding)。最佳实践是优先使用代码生成器生成基础 CRUD 代码,而不是手动从零编写。这能确保生成的代码符合框架规范,包含完整的权限控制、日志记录和国际化支持。

实施步骤:

  1. 在数据库中设计好数据表结构,并遵循 Jeecg 的命名规范(如主键为 id)。
  2. 在系统菜单“在线开发”->“代码生成器”中配置表信息。
  3. 设置表单展示规则、查询配置和字典配置。
  4. 预览代码并确认无误后,下载代码解压到对应项目模块目录下。

注意事项: 如果对生成的代码进行了修改,当数据库结构变更需要重新生成时,请务必注意备份修改过的逻辑,或者使用继承的方式扩展业务逻辑,以免覆盖。


实践 2:合理利用数据字典简化维护

说明: 对于下拉选项、状态值等固定枚举数据,应使用 JeecgBoot 自带的字典管理功能,而非硬编码在前端或后端。这样可以实现一处修改、全局生效,并支持多语言。

实施步骤:

  1. 进入“系统管理”->“字典管理”,新建一个字典类型(例如:order_status)。
  2. 在该类型下添加具体的字典项(如 0-待支付, 1-已支付)。
  3. 在开发页面(表单设计器或代码生成配置)时,将控件类型设置为“字典下拉”或“字典复选框”,并填入字典编码。
  4. 后端查询时,框架会自动进行字典翻译,前端可直接使用。

注意事项: 对于数据量非常大(超过几千条)或者层级结构复杂的数据(如组织架构树),建议使用专门的表关联查询,而不是字典表。


实践 3:使用 Online 无代码开发工具构建简单页面

说明: 对于简单的表单维护页面(如配置表、字典表),无需编写代码,直接使用 JeecgBoot 的 Online 表单开发(Online Form)和报表功能即可实现。这能极大缩短开发周期。

实施步骤:

  1. 在“Online 表单开发”菜单中导入数据库表。
  2. 配置表单布局、控件属性、校验规则以及列表页的查询条件。
  3. 配置完成后,点击“刷新”按钮,系统会自动生成访问菜单。
  4. 将生成的菜单配置权限并分配给用户。

注意事项: Online 开发适合标准 CRUD 业务。对于复杂的业务逻辑、特殊的交互流程或高性能要求的页面,建议仍使用代码生成器生成代码后进行二次开发。


实践 4:前后端分离与接口权限控制

说明: JeecgBoot 采用前后端分离架构。最佳实践是严格通过后端 @PermissionData 注解和前端 v-has 指令来控制数据可见性和按钮权限,避免在前端暴露无权限的接口,并在后端做好防越权处理。

实施步骤:

  1. 后端接口使用 @AutoLog 记录日志,使用 @PermissionData 注解进行数据权限过滤(如部门隔离)。
  2. 前端页面中,对特定按钮使用 v-has="'user:add'" 来控制显示。
  3. system 模块中配置好菜单的权限标识。
  4. 避免在前端直接调用未封装的 Ajax 请求,应统一使用 @/api 下定义的接口方法。

注意事项: 前端隐藏按钮仅是 UI 优化,后端接口必须严格校验当前用户是否有权执行该操作(通过 Shiro 或 Spring Security 配置)。


实践 5:自定义校验器与全局异常处理

说明: 虽然 JeecgBoot 提供了基础的校验功能,但在复杂业务中,需要自定义校验逻辑。同时,应利用全局异常处理器统一返回错误信息,保持接口返回格式的一致性。

实施步骤:

  1. 实体类字段上使用 Hibernate Validator 注解(如 @NotNull, @Email)。
  2. 对于复杂的业务校验,在 Service 层编写逻辑,并在失败时抛出 JeecgBootException
  3. 前端在 request.js 拦截器中统一处理错误状态码,使用 this.$message.error 提示用户。

注意事项: 不要在 Controller 层写过多的业务校验逻辑,应保持 Controller 轻量,仅负责参数接收和响应。


实践 6:数据库查询性能优化

说明: JeecgBoot 生成的代码默认使用了 MyBatis-Plus。在处理大数据量列表时,默认的查询可能会造成性能瓶颈。最佳实践是针对列表查询进行索引优化和分页限制。

实施步骤:

  1. 确保数据库表中用于查询条件(where 子句)和排序(order by)

性能优化建议

性能优化建议

优化 1:数据库查询与SQL优化

说明: JeecgBoot 在处理大数据量列表时,默认生成的 SQL 可能存在 SELECT * 查询所有字段的情况,且在多表关联(JOIN)时若缺乏索引会导致全表扫描。此外,分页查询在深度分页时(如 LIMIT 1000000, 10)性能会急剧下降。

实施方法:

  1. 字段过滤: 修改代码生成器模板或手动编写 SQL,明确指定 SELECT 需要的具体字段,避免 SELECT *
  2. 索引优化: 分析慢查询日志,为 WHEREJOINORDER BY 涉及的列添加合适的联合索引。
  3. 深度分页优化: 使用 “延迟关联” 或 “书签模式” 优化深度分页。例如先通过覆盖索引查出 ID,再根据 ID 关联查询详细数据。

预期效果: 查询响应时间减少 50%-90%,特别是在百万级数据量下效果显著。


优化 2:接口防刷与限流

说明: 系统的核心接口(如登录、大数据量导出)若未进行保护,容易遭受恶意请求或爬虫攻击,导致服务器负载过高(CPU 100%)甚至宕机。

实施方法:

  1. 网关层限流: 利用 JeecgBoot 集成的 Sentinel 或 Nginx 配置限流规则,限制单 IP 的每秒请求数(QPS)。
  2. 接口防刷: 使用 Redis 实现接口令牌桶算法或计数器。对于关键操作(如导出),要求前端传递随机 token,后端校验一次后失效。

预期效果: 有效防止恶意攻击导致的服务不可用,保障系统在高并发下的稳定性。


优化 3:异步处理与解耦

说明: 业务中常见的日志记录、消息通知(邮件/短信)、复杂的报表计算等操作如果放在主线程中同步执行,会阻塞请求响应,导致用户等待时间过长,降低吞吐量。

实施方法:

  1. Spring 异步事件: 使用 @Async 注解或 Spring Event 机制,将非核心业务逻辑异步化。
  2. 消息队列: 引入 RabbitMQ 或 Kafka,将耗时任务放入队列中异步消费。
  3. 定时任务: 对于非实时要求的统计类任务,改为 Quartz 定时执行。

预期效果: 核心接口 RT(响应时间)降低 80% 以上,系统 QPS(吞吐量)提升 3-5 倍。


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

说明: JeecgBoot 前端使用 Ant Design Vue,组件丰富但体积较大。若未进行优化,首屏加载时间(FCP)会很长,影响用户体验。

实施方法:

  1. 按需引入: 修改 babel-plugin-import 配置,确保 Ant Design Vue 组件和样式按需加载,避免打包整个库。
  2. 路由懒加载: 使用动态 import() 语法分割路由代码块,访问时才加载对应模块。
  3. Gzip 压缩: 在 Nginx 配置中开启 gzip on;,对 JS/CSS/HTML 文件进行压缩传输。

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


优化 5:本地缓存与分布式缓存策略

说明: 频繁访问数据库获取“配置字典”、“系统参数”或“热点数据”会造成巨大的数据库 I/O 压力。

实施方法:

  1. 多级缓存: 使用 JeecgBoot 自带的 @Cache 注解或 Redis 模板。对于不常变动的数据(如字典表),使用 Redis 缓存并设置较长的过期时间。
  2. 本地缓存: 对于极高并发且允许短时一致性的数据,可使用 Guava Cache 或 Caffeine 作为本地一级缓存,减少 Redis 网络开销。

预期效果: 数据库 QPS 降低


学习要点

  • 基于 JeecgBoot 的技术特性与行业定位,总结关键要点如下:
  • JeecgBoot 是一款基于代码生成器的低代码开发平台,旨在通过自动化代码生成显著提升传统单体应用或微服务架构的开发效率。
  • 核心架构采用前后端分离设计,技术栈默认整合 Spring Boot(后端)与 Vue 3(前端),并提供 Ant Design Vue 的企业级 UI 解决方案。
  • 平台内置强大的 Online 代码生成器,支持通过在线配置表单、报表及页面逻辑,实现单表、树表及主子表的全栈代码一键生成。
  • 针对复杂业务场景,提供了智能化的查询构造器与表单设计器,允许用户通过可视化拖拽快速构建业务流程与数据录入界面。
  • 系统原生集成了微服务基础架构(如 Nacos、Sentinel、Gateway),为开发者提供了开箱即用的分布式系统解决方案,降低微服务开发门槛。
  • 内置完善的系统管理功能模块,涵盖用户权限、角色分配、部门管理及数据字典等企业应用必备的基础功能。

学习路径

学习路径

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

学习内容:

  • JeecgBoot 的技术架构与核心特性
  • 开发环境配置
  • 快速启动前后端项目
  • 熟悉系统菜单与基础功能模块

学习时间: 3-5天

学习资源:

  • JeecgBoot 官方文档
  • JeecgBoot 官方 QQ 群或微信群

学习建议: 此阶段重点是跑通环境。建议先阅读官方文档的“快速开始”部分,务必成功启动后台管理系统,体验一下现有的功能,如用户管理、角色权限等,建立直观认识。


阶段 2:低代码开发实战

学习内容:

  • 在线代码生成器的使用
  • 单表、树表、主子表的增删改查(CRUD)代码生成
  • 表单设计器的使用
  • 在线报表配置
  • 数据字典的使用

学习时间: 2-3周

学习资源:

  • JeecgBoot 官方文档 - 代码生成专题
  • Bilibili 上的 JeecgBoot 入门实战教程视频

学习建议: 这是 JeecgBoot 的核心价值所在。建议尝试自己设计一个小型的业务数据库表(如“商品管理”或“订单记录”),然后使用代码生成器生成全套前后端代码,并运行调试。重点理解生成的代码结构,以及如何通过拖拽生成表单和列表页面。


阶段 3:前端开发进阶

学习内容:

  • Ant Design Vue 组件库的深入使用
  • Vue 3 Composition API 的应用
  • 前端路由与权限控制
  • 常用业务组件封装
  • 前端网络请求封装与接口联调

学习时间: 3-4周

学习资源:

  • Ant Design Vue 官方文档
  • Vue 3 官方文档
  • JeecgBoot 前端源码分析

学习建议: 在掌握基础页面生成后,你需要修改生成的代码以满足特定需求。建议深入阅读 @/views 下的业务代码,学习如何使用 Ant Design Vue 的高级组件。同时,学习如何利用 Jeecg 提供的工具类(如 http 请求工具)进行自定义接口开发。


阶段 4:后端开发与架构深入

学习内容:

  • Spring Boot 核心原理与配置
  • MyBatis-Plus 高级用法(如 Lambda 查询、Wrapper 条件构造)
  • 接口权限控制
  • 自定义接口开发与 RESTful 规范
  • 数据库设计与优化基础

学习时间: 4-6周

学习资源:

  • Spring Boot 官方参考文档
  • MyBatis-Plus 官方文档
  • JeecgBoot 后端源码

学习建议: 此阶段重点在于理解业务逻辑的落地。建议尝试不使用代码生成器,手写一个复杂的 Service 接口,处理复杂的业务逻辑,并编写对应的 Controller 接口供前端调用。深入理解 JeecgBoot 的权限拦截机制和数据权限过滤原理。


阶段 5:系统定制与源码 mastery

学习内容:

  • 自定义主题与样式修改
  • 流程引擎的集成与开发
  • 大屏设计与集成
  • 微服务版本的部署与架构
  • 二次开发规范与最佳实践

学习时间: 持续学习

学习资源:

  • JeecgBoot 开源社区
  • JeecgBoot 企业版定制文档(如有)
  • GitHub Issues 源码讨论

学习建议: 到了这个阶段,你已经是熟练的开发者了。建议参与开源社区贡献,或者在 GitHub 上阅读源码中的核心模块(如日志处理、异常处理、多数据源切换等)。尝试将 JeecgBoot 部署到生产环境,并研究 Docker 容器化部署和 CI/CD 流程。


常见问题

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

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

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源了核心代码(基于 MIT 协议),旨在解决 Java 项目中 80% 的重复工作,让开发者更多关注业务逻辑。

其核心价值在于:

  1. 在线代码生成:通过在线配置表单,自动生成 Java、Vue、SQL 等前后端代码,并支持下载到本地。
  2. 强大的低代码能力:提供 Online 在线表单开发(无需编码)、Online 报表等功能,实现快速交付。
  3. 技术栈主流:基于 Spring Boot 2.x/3.x 和 Ant Design Vue(Vue3),集成 Mybatis-Plus、Redis 等主流技术,方便二次开发。
  4. 开箱即用:提供了用户权限、角色管理、部门管理、字典管理等企业级通用的基础功能模块。

2: JeecgBoot 的技术栈是什么?对开发环境有什么要求?

2: JeecgBoot 的技术栈是什么?对开发环境有什么要求?

A: JeecgBoot 采用前后端分离架构,具体技术栈和环境要求如下:

后端技术栈:

  • 核心框架:Spring Boot 2.7 或 3.x(根据版本选择)
  • 持久层:Mybatis-Plus(简称 MP)
  • 数据库:MySQL 5.7+ / 8.0+(建议使用 8.0)
  • 缓存:Redis
  • 安全框架:Shiro 或 Jwt(用于 Token 认证)

前端技术栈:

  • 框架:Vue 3.0 + Vite(最新版)或 Vue 2.7 + Webpack(旧版)
  • UI 组件库:Ant Design Vue
  • 状态管理:Pinia(Vue3)或 Vuex(Vue2)

环境要求:

  • JDK:JDK 1.8+(如果是 Spring Boot 3.x 版本,则需要 JDK 17+)
  • Node.js:Node 14+(推荐使用 Node 16 或 18)
  • 开发工具:IntelliJ IDEA(推荐)、VS Code

3: 如何启动 JeecgBoot 项目?启动顺序是什么?

3: 如何启动 JeecgBoot 项目?启动顺序是什么?

A: 启动 JeecgBoot 需要分别启动后端服务和前端服务,建议顺序如下:

第一步:准备基础环境 确保已安装并运行 MySQL 和 Redis。导入项目根目录下的 sql 文件夹中的 .sql 脚本到数据库,并修改后端配置文件(application.yml)中的数据库连接信息和 Redis 地址。

第二步:启动后端

  1. 使用 IntelliJ IDEA 打开 jeecg-boot 项目。
  2. 找到 JeecgSystemApplication.java 文件(通常在 org.jeecg 包下)。
  3. 运行该类的 main 方法。看到控制台输出 “JeecgBoot 启动成功” 即表示后端启动完毕。

第三步:启动前端

  1. 命令行进入前端项目目录 ant-design-vue-jeecg
  2. 执行安装依赖命令:npm installyarn install(如果下载慢建议配置 npm 淘宝镜像)。
  3. 执行启动命令:npm run serve(Vue2)或 npm run dev(Vue3)。
  4. 浏览器自动弹出或访问控制台打印的地址(通常是 http://localhost:3100)。

默认账号密码:通常是 admin / 123456


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

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

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

  1. 数据库建表:在数据库中创建一张业务表,建议字段命名遵循规范(如 create_time, update_time 等)。
  2. 导入表:登录系统,进入菜单“在线开发” -> “Online 表单开发(或代码生成)”,点击“导入”按钮,选择刚才创建的数据库表。
  3. 配置表单
    • 字段配置:设置每个字段的显示类型(下拉框、日期、弹窗等)、是否必填、校验规则等。
    • 页面配置:设置列表显示的列、查询条件等。
    • JS 增强:如果有复杂的逻辑,可以编写自定义 JS 代码。
  4. 生成代码:配置完成后,点击“生成代码”按钮。系统会生成一个压缩包。
  5. 代码集成:解压压缩包,将 Java 文件放入后端对应的目录下,将 Vue 文件放入前端对应的目录下。重启后端和前端即可看到新开发的菜单和功能。

5: JeecgBoot 如何进行二次开发?如何扩展权限

5: JeecgBoot 如何进行二次开发?如何扩展权限


思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**: 基础环境搭建与代码生成

请下载并运行 JeecgBoot 的前后端项目。启动成功后,利用其 Online 代码生成功能,针对一张简单的业务表(例如:demo_order),生成包含列表、表单、增删改查功能的完整前后端代码,并将其集成到菜单系统中运行。

提示**:


实践建议

基于 JeecgBoot 作为“AI低代码平台”的定位及其架构特点,以下是 6 条针对实际开发场景的实践建议:

1. 严格遵循“在线表单”而非“硬编码”优先原则

场景: 在构建 CRUD(增删改查)功能时。 建议: 充分利用 JeecgBoot 的 Online 在线代码生成器。对于标准的业务表单,应优先使用 Online 表单设计器进行拖拽配置,并通过“在线表单”功能直接发布,而不是生成代码到本地再修改。 最佳实践: 仅在业务逻辑包含极其复杂的算法或第三方系统集成时,才采用生成代码到本地进行二次开发的方式。这能最大程度保留系统后续的升级能力。 常见陷阱: 生成代码后直接在 Controller 或 Service 中硬编码大量逻辑,导致后续表单字段变更时无法通过配置热更新,必须重新修改代码。

2. AI 助手与知识库的“领域隔离”配置

场景: 使用 AI 聊天助手和知识库功能辅助业务操作。 建议: 在构建企业级知识库时,务必按业务模块(如财务、HR、采购)建立独立的向量库和知识库分组。 最佳实践: 在配置 AI 助手时,明确指定其访问的知识库范围。例如,配置一个“合同审核助手”,仅关联“法务知识库”和“合同流程库”,避免 AI 跨库检索产生幻觉或混淆业务规则。 常见陷阱: 将所有文档混在一个大知识库中,导致 AI 回答准确率大幅下降,且容易泄露跨部门的敏感数据。

3. AI 流程编排中的“人机协同”设计

场景: 使用 AI 流程编排设计复杂的自动化业务。 建议: 不要试图让 AI 处理 100% 的逻辑。在流程的关键节点(特别是涉及资金划拨、数据删除等高风险操作)必须插入“人工确认”节点。 最佳实践: 利用 JeecgBoot 的流程编排能力,让 AI 负责数据提取、风险评估和草案生成,最后由人工点击确认。 常见陷阱: 过度信任 AI 的自动化能力,导致系统在 AI 产生幻觉时执行不可逆的错误操作。

4. 代码生成后的“增量开发”规范

场景: 生成代码后需要添加自定义业务逻辑。 建议: 永远不要修改生成的 Base 类(如自动生成的 Mapper XML 基础文件或 Entity 基类)。应将自定义业务逻辑写在 Service 层或扩展类中。 最佳实践: 如果需要修改 SQL 查询逻辑,优先在 Mapper XML 中使用 extends 机制或在 Service 层组合调用,而不是覆盖原有的 XML 语句。 常见陷阱: 直接修改自动生成的文件,导致下次重新生成表单代码时,之前的修改被覆盖或合并时产生冲突。

5. 权限控制:从“菜单级”下沉到“按钮及数据级”

场景: 配置不同角色的用户权限。 建议: 不要仅停留在配置菜单权限。JeecgBoot 提供了强大的按钮级和数据权限(SQL 注入式)控制。 最佳实践: 针对敏感数据(如薪资、客户列表),使用“数据权限规则”配置 SQL 片段,确保员工只能看到自己部门的数据。对于 AI 模型的调用权限,应严格限制给特定角色,避免普通用户随意消耗 Token 额度。 常见陷阱: 忽略数据权限配置,导致虽然隐藏了菜单,但拥有技术能力的用户通过直接调用 API 仍能遍历全表数据。

6. 聊天式业务操作的上下文管理

场景: 使用“聊天式业务操作”功能(即通过对话修改数据)。 建议: 在 Prompt 设计中,必须包含严格的“输出格式校验”指令。 最佳实践: 要求 AI 输出标准的 JSON 格式以便后端解析,并在后端接口中增加严格的参数校验。 常见陷阱: 允许 AI 直接拼接


引用

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



站内链接

相关文章