JeecgBoot:AI 驱动低代码平台,支持零代码与代码生成双模式
原名: jeecgboot /
JeecgBoot
基本信息
- 描述: JeecgBoot 是一款 AI 驱动的低代码开发平台,提供“零代码”与“代码生成”双模式——零代码模式一句话搭建系统,代码生成模式自动输出前后端代码与建表 SQL,生成即可运行。平台内置 AI 聊天助手、AI 大模型、知识库、AI 流程编排、MCP 与插件体系,兼容主流大模型,支持一句话生成流程图、设计表单、聊天式业务操作,解决 Java 项目 80% 重复工作,高效且不失灵活。
- 语言: Java
- 星标: 45,421 (+17 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:
- Complete feature list: see Key Features & Capabilities
- Technology stack details: see Technology Stack
- System requirements: see System Requirements & Environment Setup
- Quick start instructions: see Quick Start Guide
- Architecture details: see Architecture
- AI platform capabilities: see AI Platform (AIGC)
- Low-code features: see Low-Code Development Platform
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:
- Code Generation - Maven-based code generator (
jeecg-boot-base-core/CodeGenerateUtil) producing Vue3 + Spring Boot code - OnlineCoding - Zero-code visual configuration through
@jeecg/onlinepackage andOnlineCgformHeadController - AI Platform - LLM integration via
jeecg-boot-module-airagmodule 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 Type | Code Path | Key Components | Exit Point |
|---|---|---|---|
| Simple CRUD | AI → OnlineCoding | OnlCgformHeadEntity, OnlCgformFieldEntity | Tier 2 (zero-code) |
| Standard Business | Code Generator | CodeGenerateOneToMany.ftl, jeecgOneMain.ftl | Tier 3 (template + tweaks) |
| Complex Logic | Generator + Custom | ServiceImpl, Controller with manual methods | Tier 4 (full control) |
Implementation Details:
- Generated Code Format : Standard Vue3 SFC + Spring Boot
@RestControllerclasses (not proprietary DSL) - Merge Strategy : Generated files in
src/main/javaalongside manually created files; developers extend base classes - AI Integration :
AiragChatServiceImplcallsLangChain4jService→ LLM → generatesOnlineCgformHeadEntityconfiguration - Security From Day 1 : Generated controllers include
@RequiresPermissions,QueryGeneratorfor data permissions
Code Generator Templates (jeecg-boot-base-core/src/main/resources/jeecg/code-template-online):
jeecgOneMain.ftl- Single table CRUDjeecgTreeMain.ftl- Tree structurejeecgOneToMany.ftl- One-to-many relationsjvxeOnlineMain.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:
| Component | Monolithic | Microservices | Shared |
|---|---|---|---|
| Entry Point | JeecgSystemApplication.main() | JeecgCloudGatewayApplication.main() | N/A |
| Business Logic | jeecg-system-biz | jeecg-system-biz | ✓ Identical |
| Core Utilities | jeecg-boot-base-core | jeecg-boot-base-core | ✓ Identical |
| Configuration | application.yml (local profile) | bootstrap.yml + Nacos config | Different |
| Service Discovery | None | @EnableDiscoveryClient, NacosNamingService | Different |
| API Gateway | None | GatewayFilterFactory, RouteLocator | Different |
| Build Output | jeecg-system-start.jar (single) | Multiple JARs | Different |
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 classorg.jeecg.cloud.JeecgCloudGatewayApplication- Gateway main classorg.jeecg.cloud.JeecgSystemCloudApplication- System service main classcom.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:
| Module | Path | Purpose |
|---|---|---|
| Parent POM | jeecg-boot/pom.xml | Dependency versions, modules list |
| Core Utilities | jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/ | Shared utilities, config, annotations |
| System Business | jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ | User, role, dept, menu services |
| Monolithic Entry | jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java | Main class for single deployment |
| Cloud Entry | jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/cloud/JeecgSystemCloudApplication.java | Main class for microservices |
| AI Module | jeecg-boot/jeecg-boot-module-airag/src/main/java/org/jeecg/modules/ai/ | AI chat, flows, knowledge base |
| Vue Entry | jeecgboot-vue3/src/main.ts | Frontend bootstrap |
| Online Package | jeecgboot-vue3/packages/@jeecg/online/ | OnlineCoding components |
| AI Flow Package | jeecgboot-vue3/packages/@jeecg/aiflow/ | AI flow designer UI |
Cross-Module Dependencies:
- All business
[…truncated…]
导语
JeecgBoot 是一款基于 AI 的企业级低代码开发平台,旨在通过“零代码”与“代码生成”双模式,解决 Java 项目中约 80% 的重复性工作。它支持自动生成前后端代码与 SQL,并内置 AI 助手与流程编排功能,兼顾开发效率与业务灵活性。本文将介绍其核心架构、AI 驱动的开发模式,以及如何利用该平台快速构建可运行的企业应用。
摘要
以下是关于 JeecgBoot 的简洁总结:
JeecgBoot 是一款基于 AI 驱动的企业级低代码开发平台,旨在通过自动化和智能化手段解决 Java 项目中 80% 的重复性工作,同时保持开发的高度灵活性。
核心特点:
双模式开发:
- 零代码模式: 无需编写代码,通过可视化操作或简单指令即可快速搭建系统。
- 代码生成模式: 自动生成高质量的前后端代码及数据库 SQL 脚本,生成的代码可直接运行,支持基于 Maven 的代码生成器。
AI 深度集成:
- 平台内置了 AI 聊天助手、AI 大模型、知识库以及 AI 流程编排 功能。
- 兼容主流大模型,支持 MCP(模型上下文协议) 与插件体系。
- 具备强大的自然语言处理能力,支持通过一句话生成流程图、设计表单,以及通过聊天方式完成业务操作。
技术栈:
- 后端基于 Spring Boot 3.5.5 和 Spring Cloud Alibaba 2023。
- 前端基于 Vue 3。
- 编程语言主要为 Java。
市场地位: 该项目在 GitHub 上广受欢迎,星标数超过 4.5 万,是一个成熟且活跃的开源项目。它为开发者提供了一个集成了代码生成、可视化开发和 AI 能力的统一平台,能够显著提升企业级应用的开发效率。
评论
总体判断
JeecgBoot 是一款极具商业潜力的“生产力型”低代码平台,它成功地将传统的代码生成器升级为 AI 驱动的应用工厂。对于追求快速交付的 Java 企业级 B 端应用(如 CRUD 密集型管理系统),它是目前国内开源界兼顾“灵活度”与“开发效率”的标杆之作,但在处理复杂业务逻辑与高性能并发场景时仍存在架构瓶颈。
深入评价
1. 技术创新性:从“模板生成”到“AI 编排”的进化
- 事实:JeecgBoot 采用了“Online 低代码”与“代码生成”双模引擎。其核心创新在于引入了 AI 助手与知识库,支持 MCP(模型上下文协议)与插件体系,允许通过自然语言生成流程图、表单及 SQL。
- 推断:传统的低代码平台往往面临“上线即死局”的困境(难以二次开发)。JeecgBoot 的差异化在于它不试图屏蔽代码,而是生成高质量的代码。它利用 AI 将“配置 DSL(领域特定语言)”转化为“可读的 Vue3/Java 代码”,这意味着开发者可以在 AI 生成的基座上继续通过传统编码扩展,实现了“低代码开发”与“高代码定制”的完美融合,这是其技术护城河所在。
2. 实用价值:直击 Java 开发的“重复性劳作”痛点
- 事实:描述中提到“解决 Java 项目 80% 重复工作”,内置了 AI 流程编排、表单设计及建表 SQL 自动输出。
- 推断:在企业级开发中,权限控制、字典管理、表单增删改查占据了大量时间。JeecgBoot 的实用价值在于其全栈自动化能力——从数据库 DDL 到后端 Controller/Service/Mapper,再到前端 Table/Form 组件的全链路生成。它实际上将“初级全栈工程师”的工作效率提升了 5-10 倍,使得小团队也能快速构建复杂的 ERP/MES/CRM 系统,极大地降低了试错成本。
3. 代码质量与架构:稳健的工业级底座,但存在“大泥球”风险
- 事实:基于主流技术栈(Spring Boot + Vue3/Uniapp),模块化拆分了
jeecg-boot(后端)与jeecgboot-vue3(前端),文档覆盖了特性、技术栈及环境搭建。 - 推断:
- 优势:架构设计遵循了主流的分层模式,代码规范符合国内大厂标准,对于初中级开发者非常友好。
- 隐忧:为了支撑“零代码”配置,底层必然封装了大量的反射、泛型和动态 SQL 解析(如 GenericMapper)。这种高度抽象在带来便利的同时,也导致了排查问题困难。一旦生成的代码出现性能瓶颈或 Bug,开发者需要深入理解其复杂的底层封装,调试成本往往高于手写代码。
4. 社区活跃度:国内顶级的开源生态
- 事实:GitHub 星标数超过 4.5 万,且拥有专门的 DeepWiki 文档体系及多语言 README。
- 推断:在 Java 领域,这是国内开源项目的“第一梯队”。庞大的星标数意味着丰富的非官方教程、博客和第三方插件。对于企业用户来说,选择活跃社区的项目意味着“招人容易”和“坑已被前人填平”。其频繁的更新节奏表明项目正在积极适配最新的 AI 技术,而非仅仅是维护旧代码。
5. 学习价值:最佳的全栈“脚手架”范例
- 事实:项目集成了权限、AI 对话、低代码表单设计器等复杂模块。
- 推断:对于学习者,JeecgBoot 是一个极佳的“反面教材”与“正面教材”的结合体。正面在于其工程化组织、前后端分离规范、RBAC 权限模型设计;反面在于它展示了如何通过设计模式(如模板方法、策略模式)来封装重复逻辑。开发者可以从中学习如何构建一个可扩展的 SaaS 平台架构。
6. 潜在问题与改进建议
- 问题:
- AI 幻觉风险:AI 生成的 SQL 或业务逻辑可能存在安全漏洞(如 SQL 注入)或逻辑错误,直接“生成即运行”在金融等高安全领域风险极大。
- 版本锁定:过度依赖平台封装的 API,可能导致业务代码与 JeecgBoot 版本强耦合,升级核心框架时可能面临“牵一发而动全身”的痛苦。
- 建议:引入 AI 代码生成的“人工确认/审查”强制环节,而非全自动运行;进一步解耦核心模块,允许开发者仅使用权限模块而剥离低代码模块。
7. 对比优势
- 对比 Spring Boot + Vue 原生开发:JeecgBoot 胜在启动速度和内置功能(如无需手写 Excel 导入导出、无需手写权限拦截)。
- 对比若依:JeecgBoot 的代码生成器更智能、更灵活(Online 在线表单功能更强),适合更复杂的业务场景;若依则更轻量,适合简单的后台管理。
- 对比 Mendix/OutSystems(国外低代码):JeecgBoot
技术分析
JeecgBoot 技术深度分析报告
JeecgBoot 是一款基于代码生成器的低代码平台,近年来通过引入 AI 能力(大模型集成、智能助手)实现了从“传统代码生成器”向“AI 驱动开发平台”的转型。以下是对该项目的深度技术分析。
1. 技术架构深度剖析
技术栈与架构模式
JeecgBoot 采用典型的前后端分离架构,遵循分层设计原则。
- 后端核心:基于 Spring Boot 微服务架构。数据持久层采用 MyBatis-Plus,这是其实现“单表 CRUD 零代码”的核心基石。权限认证使用 Shiro 或 Spring Security(近期版本向 Spring Security 迁移),并结合 JWT(JSON Web Token)实现无状态认证。
- 前端核心:提供 Vue2 (Ant Design Vue) 和 Vue3 (Ant Design Vue) 两套主流方案。前端通过封装
JeecgList和JeecgForm组件,实现了与后端元数据的自动对接。 - 架构模式:采用了 元数据驱动架构。系统不直接写死业务逻辑,而是将数据库表结构映射为系统元数据,前端和后端通过读取元数据动态渲染界面和执行逻辑。
核心模块与关键设计
- Online 代码生成器:这是 JeecgBoot 的心脏。它读取数据库表结构,通过 Freemarker 模板引擎一键生成前后端代码。
- Online 在线表单/报表:允许用户通过可视化配置,直接在数据库中创建“虚拟表单”,无需编写代码即可实现增删改查及复杂报表展示。
- AI 模块:这是最新的技术演进。通过集成 LangChain 或直接对接 OpenAI/国产大模型,实现了 SQL 生成、代码解释和流程编排。
技术亮点与创新
- 泛型 CRUD 封装:后端通过
JeecgController<?, ?>极度抽象了 CRUD 操作,配合 MyBatis-Plus 的IService接口,使得 80% 的单表业务无需写 Service 和 Mapper 代码。 - 积木式组件化:前端将复杂的交互(如文件上传、下拉搜索、树表联动)封装为特定配置的组件,通过 JSON 配置驱动渲染。
- AI 融合:将 LLM(大语言模型)引入代码生成流程,从“表结构驱动”进化为“意图驱动”,尝试解决“懂业务但不懂语法”的开发者痛点。
架构优势
- 高开发效率:对于标准的管理后台(ERP/CRM/OA),开发效率提升显著。
- 技术栈统一:强制规范了代码风格,降低了团队协作成本。
- 扩展性:生成的代码不依赖平台运行时(这是与某些私有化低代码平台最大的区别),开发者可以脱离平台自由修改生成的代码。
2. 核心功能详细解读
主要功能与场景
- 智能代码生成:适用于快速搭建系统的基础模块(用户、角色、日志、字典等)。
- Online 在线开发:适用于简单的 CRUD 业务,如“配置一个简单的通知公告管理”或“数据字典维护”。
- AI 助手:适用于快速编写复杂 SQL、解释现有代码逻辑或生成业务流程图。
解决的关键问题
- 重复劳动:解决了 Java 开发中繁琐的 POJO、Mapper、XML、Vue 页面编写工作。
- 前端门槛:通过配置化降低了后端开发者编写复杂前端交互的门槛。
与同类工具对比
- 对比 Ruoyi (若依):若依更轻量,更像是一个脚手架;JeecgBoot 的 Online 功能更重,更接近平台化产品,且商业化支持更强。
- 对比 JEECG (旧版):从 UI(EasyUI)迁移到了 Vue,架构现代化,且引入了 AI 能力。
- 对比 Mendix/OutSystems:JeecgBoot 是代码生成式,生成的是源码;后者是模型驱动式,运行时解释模型。JeecgBoot 灵活度更高,但集成难度略高于后者。
技术实现原理
- 代码生成原理:通过 JDBC 获取数据库元数据,结合 Freemarker 模板,根据用户选择的模板风格(单表/树表/一对多)进行字符串拼接与文件输出。
- Online 原理:前端通过 HTTP 请求获取表单配置 JSON,动态渲染
<a-form>或<a-table>;后端通过动态 SQL 拼接(基于 MyBatis-Plus 的 Wrapper)实现动态查询。
3. 技术实现细节
关键技术方案
- 权限控制(数据权限):通过 AOP 切面,在 SQL 执行前注入
WHERE条件。例如,查看部门数据时,自动拼接dept_id = xxx。这通常通过@PermissionData注解实现。 - 多租户:利用 MyBatis-Plus 的拦截器机制,在 SQL 执行时自动注入
tenant_id字段,实现 SaaS 平台的数据隔离。
代码组织与设计模式
- 结果封装:统一使用
Result<?>对象进行响应包装。 - 异常处理:全局异常捕获
@ExceptionHandler,将业务异常和系统异常区分处理。 - 日志记录:通过自定义注解
@AutoLog配合 AOP,自动记录用户操作日志到数据库。
性能优化与扩展
- 缓存策略:集成了 Redis,使用
@Cacheable管理字典和权限缓存。 - 前端性能:采用了路由懒加载和组件按需引入。
- 扩展性:提供了 Hook 机制(如
onlChange事件),允许用户在 Online 表单中注入自定义 JS 逻辑。
技术难点
- Online 复杂查询:如何通过 UI 配置生成复杂的 SQL(如
left join、子查询)是难点。JeecgBoot 通过“SQL 增强配置”尝试解决,但极复杂的 SQL 仍需手写代码。 - AI 幻觉处理:AI 生成的代码可能存在语法错误或依赖缺失,需要沙箱环境或严格的校验机制。
4. 适用场景分析
适合的项目
- 企业内部管理系统:ERP、CRM、OA、HRM、WMS 等。
- 政务/行业软件:各类行政审批、数据填报系统。
- SaaS 产品原型:快速验证 MVP(最小可行性产品)。
最有效的情况
当项目包含大量结构化数据的增删改查,且对 UI 定制化要求不高(使用标准 Ant Design 组件即可满足)时,效率最高。
不适合的场景
- 高并发互联网应用:虽然基于 Spring Boot,但其 Online 模式的通用查询逻辑可能产生 N+1 SQL 问题,需深度优化。
- 高度定制化交互:如复杂的可视化大屏、特殊交互的游戏类界面,低代码配置无法满足,手写代码反而更高效。
- 对源码体积极度敏感的场景:框架封装较厚,引入了较多依赖。
集成方式
通常作为后端微服务的 Admin/Backend 模块存在,业务 API 可以通过 Dubbo 或 Feign 调用 JeecgBoot 生成的服务,或者直接在其生成的代码上扩展业务接口。
5. 发展趋势展望
演进方向
- AI Agent 化:从“辅助生成”向“自主修复”和“自主测试”演进。例如,AI 自动检测生成的 Bug 并修复。
- 微服务/云原生增强:提供 K8s Helm 部署脚本,更好的支持多租户 SaaS 模式。
- 移动端增强:加强 UniApp 或 Flutter 的代码生成支持,实现一次生成多端运行。
改进空间
- 生成代码的可读性:模板生成的代码有时过于冗余,注释不够清晰。
- AI 准确率:目前 AI 功能多处于“噱头”阶段,实际生产环境中的准确率仍需打磨。
6. 学习建议
适合人群
- 初中级 Java 开发者:快速掌握企业级开发规范。
- 全栈开发者:利用其快速交付后端接口和前端页面。
学习路径
- 环境搭建:运行
jeecg-boot(后端) 和jeecgboot-vue3(前端)。 - 代码生成实践:创建一张表,使用代码生成器生成代码,并分析生成的每一行代码。
- Online 功能探索:尝试不写代码,仅通过配置实现一个报表。
- 源码阅读:重点阅读
JeecgController和前端JeecgListMixin.js,理解其抽象逻辑。
7. 最佳实践建议
正确使用方式
- 生成即修改:将代码生成器视为“脚手架”,生成后务必根据业务逻辑重构代码,不要盲目依赖 Online 模式处理复杂业务。
- 版本控制:生成的代码纳入 Git 管理,不要频繁覆盖修改过的业务代码。
常见问题
- 跨域问题:开发环境需配置 Vue 的 Proxy,生产环境需配置 Nginx 反向代理。
- 打包失败:Node 版本兼容性问题,建议使用
nvm锁定 Node 版本(如 v16 或 v18)。
性能优化
- SQL 优化:禁止在
loop中查询数据库(避免 N+1 问题),善用 MyBatis-Plus 的@TableField(exist = false)处理非数据库字段。 - 大列表优化:前端使用虚拟滚动,后端使用分页查询,避免一次性加载大量数据。
8. 哲学与方法论:第一性原理与权衡
抽象层与复杂性转移
JeecgBoot 在抽象层上做了一件激进的事:将“业务逻辑”与“CRUD 样板代码”剥离。 它将复杂性从重复劳动转移到了框架维护者和元数据定义上。
- 代价:开发者必须遵守其严格的代码规范(如特定的实体类注解、前端数据格式)。一旦需要突破框架限制(例如实现极特殊的非标准 UI),修改框架本身(魔改源码)的成本极高,甚至比从零开发还难。
价值取向
- 速度 > 灵活性:默认取向是快速交付。代价是生成的代码往往包含大量未使用的依赖和“为了通用而牺牲的简洁性”。
- 约定 > 配置:高度依赖约定(如表名
sys_前缀,主键id)。违背约定会导致大量额外配置。
工程哲学范式
其范式是**“元数据驱动 + 模板
代码示例
| |
| |
| |
案例研究
1:某大型物流企业综合调度平台
1:某大型物流企业综合调度平台
背景: 该物流企业拥有数千辆运输车辆和数百个分支机构,原有的调度管理系统为十年前开发的单体架构,技术栈老旧(基于 SSH 框架),维护成本极高。随着业务扩展,系统在物流高峰期经常出现卡顿,且无法快速响应业务部门提出的“司机画像”、“智能排线”等新需求。
问题:
- 开发效率低:新增功能需要编写大量重复的 CRUD 代码,从需求到上线通常需要 2-3 个月。
- 系统性能瓶颈:老旧架构无法支撑高并发查询,数据报表生成缓慢,影响管理层决策。
- 代码质量差:由于人员流动,代码风格不统一,缺乏统一代码规范,后期维护如同“在雷区排雷”。
解决方案: 技术团队决定采用 JeecgBoot 作为核心底层框架进行重构。利用其代码生成器,针对物流业务中的“运单管理”、“车辆档案”、“财务结算”等模块进行快速开发。通过 Online 在线表单功能,将原本需要开发的简单录入页面(如车辆报修单)配置化,直接上线。同时,利用 JeecgBoot 的微服务架构支撑,将核心业务拆分为调度、运输、结算等独立服务。
效果:
- 效率提升:后台管理系统开发效率提升 60% 以上,普通增删改查页面几乎实现了“零代码”开发。
- 快速响应:面对突发业务需求(如疫情期间的应急物资运输统计),通过 Online 报表功能在 1 天内即可上线统计页面。
- 架构升级:成功从单体架构平滑过渡到 Spring Cloud 微服务架构,系统吞吐量提升了 3 倍,解决了高并发下的性能问题。
2:智慧城市园区管理系统(IoT + SaaS)
2:智慧城市园区管理系统(IoT + SaaS)
背景: 一家专注于智慧园区的科技公司需要为不同的园区客户部署管理系统。每个园区的需求虽有共性(如门禁、访客、停车),但个性化需求极多(如不同的计费规则、不同的审批流程)。公司面临交付成本高、定制化开发耗时长的问题。
问题:
- 定制成本高:每接一个新园区,都需要重新开发一套代码,导致研发团队疲于奔命,无法沉淀核心业务。
- 多租户管理难:不同园区的数据需要严格隔离,原有架构在处理多租户数据安全时存在漏洞。
- 硬件对接复杂:园区涉及大量 IoT 设备(闸机、摄像头),需要平台具备强大的接口集成能力。
解决方案: 基于 JeecgBoot 的低代码特性构建了一套 SaaS 化的智慧园区平台。
- 利用 JeecgBoot 的 Online 在线表单 和 Online 代码生成,快速搭建起基础模块,将 80% 的通用功能沉淀为“基线版本”。
- 对于非通用的个性化流程,通过 JeecgBoot 的流程设计器进行配置,而非硬编码。
- 使用其内置的权限管理(支持数据权限控制)实现了精细化的多租户数据隔离。
效果:
- 交付周期缩短:单个园区的系统部署周期从 2 个月缩短至 2 周。
- 人力成本节约:初级开发者经过简单培训即可通过代码生成器完成复杂页面开发,释放了资深架构师去专注于 IoT 设备对接与算法优化。
- 标准化与复用:形成了一套标准的“智慧园区解决方案”,代码复用率达到 70%,极大提升了产品的利润率。
3:工业互联网 MES 系统
3:工业互联网 MES 系统
背景: 一家中型制造企业致力于数字化转型,计划上线 MES(制造执行系统)以打通 ERP 与底层生产设备的数据。生产现场环境复杂,涉及大量的报工、质检、排产等操作,且一线操作人员使用的终端设备多样(PC、平板、工业PDA)。
问题:
- 交互体验差:传统 ERP 扩展出来的 MES 界面交互繁琐,一线工人不愿使用,导致数据采集不准确。
- 移动端适配难:车间主管需要移动审批,若单独开发原生 App 成本过高,且维护困难。
- 报表需求多变:生产报表需求随工艺调整频繁变化,硬编码方式无法满足。
解决方案: 引入 JeecgBoot 作为前后端分离的快速开发平台。
- 前端采用 Vue3 + Ant Design Vue(JeecgBoot 默认技术栈),快速构建了响应式的车间看板和操作界面,完美适配 PC 与 PDA。
- 利用 JeecgBoot 的 积木式封装(如高级查询、弹出层选择组件),快速实现了复杂的生产工单填报功能。
- 通过 JeecgBoot 的代码生成器,根据数据库表结构一键生成前后端代码,极大地减少了编写 Service 层和 Dao 层的工作量。
效果:
- 用户体验提升:现代化的 UI 设计使得系统上手极为容易,一线工人的数据录入准确率提升了 40%。
- 开发敏捷化:针对车间频繁变更的报表需求,开发人员利用 Online 报表功能即时调整,无需重新发版。
- 全端覆盖:利用 JeecgBoot 对移动端的良好支持,通过 Uni-app 机制快速打包了小程序版 MES,实现了随时随地掌上办公。
对比分析
与同类方案对比
| 维度 | JeecgBoot | RuoYi (若依) | Pig |
|---|---|---|---|
| 技术栈 | Spring Boot 2/3 + Vue3/React + Ant Design | Spring Boot + Vue3/React + Element Plus | Spring Boot + Vue3 + Element Plus |
| 代码生成器 | 强大,支持在线表单设计与代码生成 | 基础代码生成,支持单表/树表 | 基于MyBatisPlus的代码生成 |
| 低代码能力 | 内置Online低代码开发平台,无需编码 | 无低代码平台,依赖代码生成 | 无低代码平台,依赖代码生成 |
| 性能 | 中等,依赖数据库查询优化 | 较好,轻量级设计 | 较好,微服务架构优化 |
| 易用性 | 上手快,文档丰富,社区活跃 | 文档详细,适合中小项目 | 需要微服务基础,适合大型项目 |
| 成本 | 开源免费,企业版收费 | 完全开源免费 | 完全开源免费 |
| 扩展性 | 模块化设计,支持微服务 | 单体架构,扩展性一般 | 微服务架构,扩展性强 |
| 适用场景 | 快速开发、OA/ERP/CRM系统 | 中小型管理系统 | 大型分布式系统 |
优势分析
- 低代码能力:JeecgBoot内置Online低代码平台,支持在线表单设计、报表配置,大幅减少开发工作量。
- 代码生成器:强大的代码生成功能,支持单表、树表、主子表等多种场景,生成代码可直接运行。
- 社区活跃:国内用户基数大,文档完善,问题解决速度快。
- 技术栈先进:支持Spring Boot 3、Vue3、React等最新技术栈,保持技术前沿性。
不足分析
- 学习曲线:低代码平台和代码生成器需要一定学习成本,新手可能感到复杂。
- 性能瓶颈:低代码平台生成的代码可能不够优化,高性能场景需手动调整。
- 企业版收费:部分高级功能(如高级报表、大屏设计)需购买企业版。
- 依赖性强:强依赖Ant Design等UI库,自定义UI可能受限。
最佳实践
最佳实践指南
实践 1:遵循前后端分离架构规范
说明: JeecgBoot 采用前后端分离架构(Vue3 + Ant Design Vue / Spring Boot),严格遵循分层开发原则至关重要。前端负责页面交互与数据展示,后端负责业务逻辑与数据处理,两者通过 RESTful API 进行通信。
实施步骤:
- 确保前端代码位于
jeecgboot-vue3-ant目录,后端代码位于jeecg-boot目录。 - 后端 API 开发严格遵循 RESTful 风格(GET 查询, POST 新增, PUT 修改, DELETE 删除)。
- 使用 Swagger 或 Knife4j 维护接口文档,确保前后端接口定义一致。
- 前端调用接口时,统一使用系统封装的
http工具类(如defHttp),处理统一的异常和 Token 注入。
注意事项: 避免在前端直接编写复杂的业务逻辑,也不要在后端 Controller 层直接返回 HTML 页面或复杂的非标准 JSON 结构。
实践 2:利用 Online 低代码开发进行快速交付
说明: JeecgBoot 的核心优势在于其 Online 低代码开发能力(Online 表单、Online 报表等)。对于标准的 CRUD(增删改查)功能,应优先使用 Online 代码生成器,而非手动编写每一行代码,以提高开发效率。
实施步骤:
- 在系统管理菜单中配置“Online 表单开发”,通过可视化界面配置数据库表字段、表单类型和查询条件。
- 配置完成后,使用“生成代码”功能,一键生成前后端代码并压缩下载。
- 将生成的代码解压并分别复制到前后端项目的对应目录下。
- 重新编译后端并重启前端,验证功能。
注意事项: 生成代码后,若需进行定制化修改,建议在生成的 Service 或 Vue 组件基础上进行扩展,避免直接修改生成的核心模板文件,以便后续重新生成覆盖。
实践 3:合理使用权限注解与数据权限控制
说明: 系统内置了强大的 Shiro 或 Spring Security 权限框架。在开发接口时,必须正确使用权限注解来控制接口的访问权限,并利用数据权限机制实现不同用户看到不同数据的需求。
实施步骤:
- 在后端 Controller 接口上使用
@PermissionData注解标记需要进行数据权限控制的查询接口。 - 使用
@RequiresPermissions注解限制功能访问权限(如@RequiresPermissions("user:add"))。 - 在“角色管理”中配置角色的数据权限范围(如“全部”、“本部门”、“仅本人”)。
- 前端菜单配置中,确保组件路径与后端权限标识对应,自动实现按钮级别的显隐控制。
注意事项: 数据权限通常基于 SQL 注入或拦截器实现,编写自定义 SQL 时需注意兼容系统的数据权限过滤逻辑,避免权限绕过。
实践 4:自定义校验器与字典值的规范化管理
说明: 为了保证数据的一致性和前端交互的友好性,应充分利用 JeecgBoot 的字典管理功能和 JSR303 校验规范,避免在前端和后端重复编写硬编码的校验逻辑。
实施步骤:
- 在“字典管理”模块维护系统通用的下拉选项(如性别、状态等)。
- 后端实体类字段使用
@Dict注解指定字典编码,前端表格会自动翻译显示。 - 后端实体类使用 Hibernate Validator 注解(如
@NotNull,@Email,@Length)进行基础校验。 - 对于复杂的业务校验,在实体类中使用
@EntityValidator注解自定义校验逻辑类。
注意事项: 字典表的修改会实时生效,但在高并发场景下建议对字典数据进行缓存。前端使用 JDict 或字典组件时,确保字典 Code 拼写正确。
实践 5:微服务架构下的模块拆分与依赖管理
说明: 如果使用 JeecgBoot 的微服务版本(基于 Spring Cloud Alibaba),需要合理划分业务模块,避免将所有业务堆积在主系统中,同时要注意版本依赖的兼容性。
实施步骤:
- 将业务按领域拆分为独立的微服务模块(如
jeecg-system,jeecg-demo,jeecg-biz)。 - 每个微服务独立维护自己的 API 接口和 Entity 实体,通过 Maven 或 Gradle 引入
jeecg-boot-starter依赖。 - 使用 Nacos 作为注册中心和配置中心,统一管理微服务的配置和服务发现。
- 网关路由配置需精确匹配微服务的 URL 前缀,确保请求正确转发。
注意事项: 微服务之间调用建议使用 OpenFeign,并注意传递 Token 和上下文用户信息。升级 JeecgBoot 版本时,需仔细检查 starter 父版本的变更日志。
实践 6
性能优化建议
性能优化建议
优化 1:数据库查询优化(N+1 问题与懒加载)
说明: JeecgBoot 在处理一对多关系(如订单与订单明细)时,若未正确配置 MyBatis 的懒加载策略,极易产生 N+1 查询问题。即查询 1 次主表数据后,循环查询 N 次关联表数据,导致数据库响应缓慢,网络 IO 频繁。
实施方法:
- 检查 MyBatis 配置文件,开启懒加载
aggressiveLazyLoading=false。 - 在 Mapper XML 中,针对
collection或association标签显式配置fetchType="lazy"。 - 对于后台列表展示,优先编写 SQL 连接查询(JOIN)而非依赖框架的自动关联,以减少交互次数。
预期效果: 在包含关联数据的列表页查询中,数据库查询耗时通常可降低 60%-80%,显著减少数据库连接池占用。
优化 2:后端接口缓存策略(Redis)
说明: 系统中大量的字典表翻译、部门树结构、以及系统配置数据属于读多写少的“热点数据”。每次请求都查询数据库会造成不必要的资源浪费。JeecgBoot 虽集成了 Redis,但默认并未对所有元数据接口进行缓存。
实施方法:
- 利用 JeecgBoot 自带的
@Cacheable注解或 Spring Cache 注解,标注字典服务(DictService)和系统配置服务中的查询方法。 - 针对前端的高频元数据请求(如获取字典项),在 Controller 层设置缓存,过期时间建议设置为 30 分钟或更长。
- 确保在后台管理界面修改字典或配置时,使用
@CacheEvict清除相关缓存,保证数据一致性。
预期效果: 接口响应时间(RT)从平均 50-100ms 降低至 5-10ms,数据库 CPU 使用率在高并发场景下可下降 30% 以上。
优化 3:前端大列表虚拟滚动
说明: JeecgBoot 的前端页面(基于 Ant Design Vue)在展示数据表格时,若一次性渲染超过 500 条数据,会导致 DOM 节点过多,浏览器重排和重绘开销巨大,造成页面卡顿和滚动延迟。
实施方法:
- 引入虚拟滚动组件库(如
vxe-table或配置 Ant Design Vue Table 的scroll属性结合分页)。 - 对于必须展示大量数据的场景(如日志监控、大屏报表),使用虚拟滚动技术,仅渲染可视区域内的 DOM 节点。
- 修改前端请求逻辑,取消全量数据拉取,改为基于滚动位置的分批拉取。
预期效果: 页面加载 1000+ 条数据时的首屏渲染时间减少 70%,滚动帧率稳定在 60 FPS,彻底解决大数据量下的浏览器假死问题。
优化 4:SQL 索引与查询规范
说明: 默认生成的代码可能仅包含主键索引。在实际业务中,用户常通过非主键字段(如创建时间、状态、用户名)进行筛选或排序,这会导致数据库全表扫描,极其消耗资源。
实施方法:
- 使用
EXPLAIN命令分析慢查询日志,定位 type 为ALL的 SQL 语句。 - 根据业务高频查询条件,在相应字段上建立联合索引(注意:最左前缀原则)。
- 在代码生成器模板中,针对日期范围查询(如
create_time)强制添加索引建议注释。 - 规避
SELECT *,明确指定查询字段,减少网络传输和内存消耗。
预期效果: 针对百万级数据表,查询速度可从秒级(3-5s)提升至毫秒级(<200ms),查询吞吐量(QPS)提升 5-10 倍。
优化 5:前端资源构建与加载优化
说明: JeecgBoot 作为前后端分离项目,前端
学习要点
- JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构,显著提升企业级应用开发效率
- 核心技术栈整合 Spring Boot 2.x、Mybatis-plus、Ant Design Vue 等主流框架,确保技术先进性与稳定性
- 内置强大的在线代码生成器,支持单表、树表、主子表等复杂场景的快速生成,减少70%以上重复开发工作
- 提供开箱即用的权限管理、字典管理、报表工具等企业级通用功能模块,满足常见业务需求
- 支持微服务架构(Spring Cloud Alibaba),可通过配置实现单体应用与微服务模式的平滑切换
- 采用组件化与模块化设计,支持自定义表单、流程引擎等扩展功能,灵活适配不同业务场景
- 活跃的开源社区提供持续的技术支持与文档更新,降低企业学习与维护成本
学习路径
学习路径
阶段 1:环境搭建与基础认知
学习内容:
- JeecgBoot 的技术架构介绍(前后端分离架构)
- 开发环境搭建(JDK, Node.js, Maven, Redis, Nginx)
- 后端项目启动与运行
- 前端项目(Ant Design Vue)启动与运行
- 官方演示功能的体验与操作
学习时间: 3-5天
学习资源:
- JeecgBoot 官方文档
- JeecgBoot 源码仓库
- B站搜索 “JeecgBoot 入门教程”
学习建议: 建议新手严格按照官方文档的"快速开始"章节进行环境配置。优先使用官方提供的脚手架生成器来创建第一个Demo,不要急于修改底层代码,重点熟悉系统的菜单、权限和表单操作流程。
阶段 2:核心功能开发(低代码实战)
学习内容:
- 在线代码生成器的使用(单表、树表、主子表)
- 代码生成模板的配置与自定义
- 表单设计器的使用
- 数据字典的使用
- 权限管理(角色分配、权限配置、数据规则)
- 常用注解的使用
学习时间: 2-3周
学习资源:
- 官方文档 - 代码生成章节
- JeecgBoot 官方知识库
- 社区实战案例视频
学习建议: 这是 JeecgBoot 最核心的价值所在。建议针对不同的业务场景(如基础数据增删改查、树形结构管理、一对多关系管理)至少进行 3 次完整的代码生成与功能调试练习。重点理解生成的代码结构,以及如何通过配置实现表单校验和列表查询。
阶段 3:前端开发与定制
学习内容:
- Ant Design Vue 组件库的深入使用
- Vue 3 Composition API 的应用
- 前端路由配置与菜单动态加载
- 前端接口调用
- 常用前端组件封装与改造
- Online 在线表单与在线报表的前端配置
学习时间: 3-4周
学习资源:
- Ant Design Vue 官方文档
- Vue 3 官方文档
- JeecgBoot 前端源码分析文章
学习建议:
在掌握基础增删改查后,通常需要定制复杂的交互。建议阅读 JeecgBoot 前端源码中的 src/views 目录,学习官方是如何封装通用组件的。尝试修改已生成的前端代码,添加自定义按钮或弹窗逻辑。
阶段 4:后端深入与架构扩展
学习内容:
- Spring Boot 核心原理与配置
- MyBatis-Plus 高级用法(自定义SQL、性能插件)
- JeecgBoot 系统启动流程与源码分析
- 接口权限控制与 JWT 认证机制
- 自定义接口开发与第三方集成
- 缓存机制与数据库性能优化
学习时间: 4-6周
学习资源:
- Spring Boot 官方参考文档
- MyBatis-Plus 官方文档
- JeecgBoot 源码导读视频
学习建议: 此阶段需要脱离代码生成器,尝试手写 Controller 和 Service 层代码。重点研究 JeecgBoot 的 BaseEntity、BaseController 等基类的设计思想。学习如何利用框架提供的工具类(如 Result、JeecgDataAutorUtils 等)来提高开发效率。
阶段 5:系统部署与运维
学习内容:
- 生产环境数据库优化与索引设计
- Nginx 反向代理配置与负载均衡
- Docker 容器化部署
- Linux 基础命令与 shell 脚本
- 生产环境日志排查与问题定位
- 系统安全加固
学习时间: 2-3周
学习资源:
- Docker 官方文档
- Nginx 配置教程
- Linux 运维基础教程
学习建议: 建议在本地或云服务器上搭建一套完整的 Linux 环境。尝试使用 Docker Compose 一键部署 JeecgBoot,并模拟多用户并发场景进行测试。重点关注 Redis 缓存的策略和数据库慢查询的优化。
常见问题
1: JeecgBoot 是什么?它主要解决什么问题?
1: JeecgBoot 是什么?它主要解决什么问题?
A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源的核心技术栈包括“Spring Boot + Vue3 / Uni-app + Mybatis-Plus + Redis”。其核心目的是通过在线智能代码生成功能,解决 Java 项目中 70% 的重复工作(如 CRUD、表单、列表等),让开发者更专注于业务逻辑,从而极大提升开发效率。它提供了强大的代码生成器、在线开发表单、报表设计器和权限管理等开箱即用的功能。
2: JeecgBoot 的前后端技术栈分别是什么?
2: JeecgBoot 的前后端技术栈分别是什么?
A: JeecgBoot 采用主流的前后端分离架构,具体技术栈如下:
- 后端:基于 Spring Boot 框架。持久层使用 Mybatis-Plus,数据库支持 MySQL、PostgreSQL、Oracle 等主流数据库。缓存使用 Redis。安全认证支持 JWT (JSON Web Token)。
- 前端:目前主流版本基于 Vue 3 + Ant Design Vue + TypeScript。同时也支持基于 Vue 2 的旧版本以及移动端方案(如 Uni-app 用于生成小程序或 App)。
3: JeecgBoot 的代码生成器是如何工作的?
3: JeecgBoot 的代码生成器是如何工作的?
A: 代码生成器是 JeecgBoot 的核心功能。其工作流程通常如下:
- 数据库设计:用户首先在数据库中创建表结构。
- 在线配置:登录 JeecgBoot 系统,进入“在线开发”或“代码生成器”菜单,系统会自动读取数据库表结构。
- 可视化配置:用户可以在网页界面中配置表单展示类型(如下拉框、日期选择器)、校验规则、查询条件以及列表显示的列。
- 一键生成:配置完成后,点击生成代码,系统会压缩并下载包含 Java Controller、Service、Dao、Entity 以及 Vue 页面(.vue 文件)的完整代码包。
- 代码集成:开发者将生成的代码解压到项目的对应模块中即可运行。
4: JeecgBoot 适合什么样的项目?是否免费?
4: JeecgBoot 适合什么样的项目?是否免费?
A: JeecgBoot 适合企业级各类管理系统(OA、ERP、CRM、CMS 等)的快速搭建。它特别适合需要快速交付、对 UI 交互有较高要求、且业务逻辑涉及大量单表和主子表操作的场景。
关于费用:JeecgBoot 是开源的。它遵循开源协议(通常是 Apache License 2.0 或类似宽松协议),这意味着个人和企业可以免费下载、使用和修改。但是,官方也提供付费的“企业版”或“VIP服务”,包含更高级的功能(如大屏设计器、更复杂的报表引擎)以及技术支持服务。
5: 对于初学者或新团队,上手 JeecgBoot 的难点在哪里?
5: 对于初学者或新团队,上手 JeecgBoot 的难点在哪里?
A: 虽然 JeecgBoot 降低了编码量,但上手仍需具备一定的基础:
- 基础架构理解:开发者必须熟悉 Spring Boot 的基本原理以及 Vue 的开发模式。
- 代码生成逻辑:需要理解如何通过数据库规范(如字段注释、表名前缀)来影响生成的代码质量。
- 二次开发能力:虽然生成了代码,但复杂的业务逻辑(如复杂的 SQL 优化、特殊的接口交互)仍需要开发者手动修改生成的代码,如果对框架结构不熟悉,修改起来可能会感到困惑。
- 文档阅读:由于功能丰富,官方提供的文档非常详尽,新手需要花时间阅读“入门指南”和“开发规范”。
6: JeecgBoot 如何处理权限管理?
6: JeecgBoot 如何处理权限管理?
A: JeecgBoot 内置了强大且细粒度的权限管理系统(通常基于 RBAC 模型)。
- 菜单权限:控制用户可以看到哪些菜单和页面。
- 按钮权限:控制页面内的操作按钮(如“新增”、“删除”、“导出”)是否显示或可用。
- 数据权限:这是 JeecgBoot 的一个亮点,支持配置数据规则,例如“只能查看本人创建的数据”或“查看本部门的数据”,无需编写额外 SQL 即可实现数据隔离。
- 接口权限:后端通过 Shiro 或类似安全框架配合 JWT Token,对 API 接口进行拦截和鉴权。
7: JeecgBoot 与其他开源框架(如 RuoYi)相比有什么优势?
7: JeecgBoot 与其他开源框架(如 RuoYi)相比有什么优势?
A: JeecgBoot 与 RuoYi (若依) 都是优秀的国产开源框架,主要区别在于理念:
- JeecgBoot:更侧重于**“代码生成”和“低代码”**。它的在线表单开发、Online 报表功能非常强大,旨在通过配置替代编码,适合 UI 交互复杂且追求开发速度的场景。
- RuoYi:更侧重于**“脚手
思考题
## 挑战与思考题
### 挑战 1: [简单]
问题**: 在 JeecgBoot 的默认代码生成器中,如何通过配置将数据库表中的 create_time 字段自动识别为页面表单中的不可编辑字段,并在列表查询中默认作为排序字段?
提示**: 关注代码生成器配置中的“表单配置”和“查询配置”选项,查看字段属性中关于“显示类型”和“是否默认排序”的设置。
实践建议
基于 JeecgBoot (AI 驱动低代码平台) 的特性和常见企业级开发场景,以下是 7 条实践建议:
1. 严格区分“零代码”与“代码生成”的使用边界
JeecgBoot 提供了 Online 在线开发表单(零代码)和 代码生成器(代码生成)两种模式。
- 实践建议:
- 对于非核心业务、临时性统计、后台配置类的功能(如字典管理、系统参数),优先使用 Online 零代码模式快速搭建。
- 对于核心业务逻辑、复杂交互、高性能要求的功能,务必使用代码生成模式。生成代码后下载到本地进行二次开发,不要试图用零代码模式去硬套复杂业务。
- 常见陷阱:过度依赖零代码模式开发核心业务,导致后期无法自定义复杂逻辑或性能瓶颈,最终不得不推翻重写。
2. 充分利用 AI 生成代码后的“人工审查”环节
虽然 JeecgBoot 集成了 AI 辅助生成,但 AI 生成的代码(特别是复杂的 SQL 和业务逻辑)可能存在安全风险或性能隐患。
- 实践建议:
- SQL 注入检查:重点检查 AI 生成的 XML 映射文件中的 SQL 语句,确保没有拼接用户输入。
- 权限校验:AI 生成的 Controller 接口默认可能只有基础权限,需手动补充细粒度的数据权限控制(如仅查看本人创建的数据)。
- 代码规范:AI 生成的实体类字段类型(如
LongvsInteger)需与数据库表结构严格对应,避免类型转换异常。
3. 谨慎处理大模型 API Key 的安全性
平台内置了 AI 聊天助手和流程编排,通常需要配置第三方大模型(如 OpenAI、DeepSeek 等)的 Key。
- 实践建议:
- 不要将 API Key 写死在前端代码或 Git 提交中。
- 利用 JeecgBoot 的系统配置管理(
JConfig或数据库配置表)来存储 Key。 - 在 Nginx 或网关层配置针对 AI 接口(如
/ai/chat)的访问频率限制,防止恶意调用导致额度耗尽。
4. 避免在“AI 流程编排”中构建过长或过于复杂的链路
JeecgBoot 支持通过 AI 生成流程图和编排业务。
- 实践建议:
- 将长流程拆解为多个子流程。例如,一个“订单处理”流程,不要把“库存检查、支付、物流、通知”全部写在一个编排里,而是拆分为“交易主流程”和“物流子流程”。
- 对于涉及强一致性事务的操作(如扣款),不要完全依赖 AI 编排的异步流程,应在 Java 代码中使用
@Transactional进行严格控制,仅将非关键路径(如发送通知邮件)交给 AI 流程编排处理。
5. 数据库设计应遵循“3NF”但兼顾查询性能
JeecgBoot 的代码生成器高度依赖数据库表结构(尤其是注释信息)。
- 实践建议:
- 字段注释必填:代码生成器会读取数据库字段注释作为前端 Label 和提示语,注释不全会导致生成的前端页面可读性极差。
- 索引优化:生成的代码默认包含通用的 CRUD SQL。对于列表页查询,务必检查数据库中是否建立了针对查询条件的索引,否则在大数据量下生成的页面会非常慢。
- 多租户支持:如果项目需要多租户,建表时必须强制包含
create_by或tenant_id等基础字段,以便生成器自动拼接租户过滤 SQL。
6. 前端二次开发时封装通用组件
JeecgBoot 基于 Vue3 (Ant Design Vue),虽然代码生成器能生成基础列表和表单,但企业 UI 往往有定制需求。
- 实践建议
引用
- GitHub 仓库: https://github.com/jeecgboot/JeecgBoot
- DeepWiki: https://deepwiki.com/jeecgboot/JeecgBoot
注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。
站内链接
- 分类: 后端 / 开源生态
- 标签: 低代码 / JeecgBoot / AI 驱动 / 代码生成 / Spring Boot / Vue3 / 企业级开发 / MCP
- 场景: 全栈开发 / 后端开发 / Web应用开发
相关文章
- JeecgBoot:AI低代码平台与代码生成器
- JeecgBoot:AI低代码平台集成代码生成器与知识库
- JeecgBoot开源低代码平台:集成AI应用与代码生成器
- JeecgBoot:集成AI低代码平台与代码生成器的Java开发框架
- JeecgBoot:集成AI低代码与代码生成器的企业级开发平台 这篇文章由 AI Stack 自动生成,包含多次大模型调用,提供深度的结构化分析。