JeecgBoot:AI 驱动的低代码平台,支持零代码搭建与代码生成
原名: jeecgboot /
JeecgBoot
基本信息
- 描述: JeecgBoot 是一款 AI 驱动的低代码开发平台,提供“零代码”与“代码生成”双模式——零代码模式一句话搭建系统,代码生成模式自动输出前后端代码与建表 SQL,生成即可运行。平台内置 AI 聊天助手、AI 大模型、知识库、AI 流程编排、MCP 与插件体系,兼容主流大模型,支持一句话生成流程图、设计表单、聊天式业务操作,解决 Java 项目 80% 重复工作,高效且不失灵活。
- 语言: Java
- 星标: 45,425 (+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 是一款基于 Java 的 AI 驱动低代码开发平台,旨在通过“零代码”与“代码生成”双模式解决企业级项目中的重复性工作。它内置 AI 助手与大模型支持,能自动生成前后端代码、SQL 及业务流程,帮助开发团队在保持灵活性的同时显著提升效率。本文将梳理该平台的核心架构、AI 编排能力及其在技术栈上的具体实现。
摘要
JeecgBoot 是一款基于 Java(Spring Boot 3.5.5、Vue 3、Spring Cloud Alibaba)构建的企业级 AI 驱动低代码开发平台。
该平台的核心特点与优势如下:
AI 赋能开发:
- 内置 AI 聊天助手、大模型及知识库,支持 AI 流程编排。
- 兼容主流大模型,支持通过自然语言(一句话)生成流程图、设计表单或进行业务操作。
双模式开发机制:
- 零代码模式:无需编写代码即可快速搭建系统。
- 代码生成模式:自动输出高质量的前后端代码及建表 SQL,生成的代码可直接运行,旨在解决 Java 项目中 80% 的重复性工作。
技术架构与生态:
- 采用 Maven 基础的代码生成器,具备完善的技术栈和微服务架构支持。
- 提供灵活的 MCP 与插件体系,在保持高效开发的同时不失灵活性。
目前,该项目在 GitHub 上拥有超过 4.5 万颗星,关注度极高。
评论
总体评价
JeecgBoot 是一款**“工程化落地能力极强”的国产企业级低代码开发平台**,它成功地将代码生成器、AI 大模型与 Spring Boot 体系深度融合,在保持技术架构主流与灵活度的同时,通过“AI 赋能”大幅降低了 CRUD(增删改查)开发的重复劳动。它不仅仅是一个快速开发脚手架,更是一个向“AI 生成式开发”过渡的成熟生产力工具,非常适合追求交付效率与代码可控性的技术团队。
深入评价维度
1. 技术创新性:从“模板生成”到“AI 驱动编排”
- 事实:平台内置 AI 聊天助手、知识库、AI 流程编排,支持 MCP(模型上下文协议)与插件体系,兼容主流大模型,能“一句话生成流程图”和“设计表单”。
- 推断:JeecgBoot 的核心差异化在于它没有停留在传统的“在线表单引擎”层面,而是将 AI 引入了元数据的定义环节。传统的低代码平台是“拖拽生成页面”,JeecgBoot 利用 AI 理解自然语言需求,直接生成数据库 DDL、Vue3 代码以及 API 接口。这种**“Prompt-to-Code”**(提示词到代码)的能力,结合其原有的 Online 代码生成器,构建了一个“AI 定义结构 -> 生成器填充逻辑 -> 开发者微调”的闭环。它将 AI 视为“高级架构师助手”而非简单的“聊天机器人”,这是其在技术路径上的显著创新。
2. 实用价值:解决“重复造轮子”与“交付效率”的矛盾
- 事实:描述中提到“解决 Java 项目 80% 重复工作”,提供“零代码”与“代码生成”双模式,生成即可运行。
- 推断:其实用价值在于**“不绑架代码”。许多低代码平台(如 OutSystems 等)往往是黑盒,一旦业务逻辑复杂,平台无法支撑时,开发者束手无策。而 JeecgBoot 采用“生成源码”**的策略,生成的代码直接成为项目的一部分,开发者可以随时修改生成的 Java 或 Vue 代码。这种模式完美契合国内复杂的 B2B 企业级应用场景(如 ERP、MES、CMS),既解决了 80% 的通用功能(权限、字典、日志、表单),又保留了 20% 复杂逻辑的定制灵活性。
3. 代码质量与架构:主流技术栈的集大成者
- 事实:基于 Java (Spring Boot),前端支持 Vue3,采用微服务架构设计,拥有 45k+ 的 Star 数。
- 推断:JeecgBoot 的架构设计体现了**“务实主义”。它没有盲目追求最新的“激进”技术,而是选择了 Java 生态中最稳定、招聘成本最低、资料最丰富的技术栈(Spring Boot + Mybatis-Plus + Vue3)。其代码质量在开源界属于中上水平,模块化程度较高(如 system、demo、visual 等模块划分清晰)。虽然为了兼容性可能存在部分代码冗余,但其稳定性和可维护性**对于企业级项目至关重要。文档方面,作为老牌开源项目,其社区文档和 Wiki 相对完善,降低了上手门槛。
4. 社区活跃度:国产开源项目的“标杆”
- 事实:GitHub 星标数超过 4.5 万,且持续更新(如最近增加了 AI 相关的 README 和 MCP 支持)。
- 推断:在 Gitee(国内代码托管平台)上,JeecgBoot 长期占据排行榜前列,拥有庞大的国内开发者群体。这意味着遇到问题时,很容易在中文社区找到解决方案或雇佣有经验的开发者。高活跃度也保证了框架能及时跟进 Spring Boot 或 Vue 的版本更新,修复安全漏洞。这种**“国产化深度适配”**(如国产数据库、信创环境支持)是其区别于国外低代码平台的一大优势。
5. 学习价值与启发:低代码平台的最佳参考架构
- 事实:提供代码生成器源码、在线表单设计器源码。
- 推断:对于开发者而言,JeecgBoot 是学习**“元数据驱动设计”(Metadata Driven Design)的绝佳教材。通过阅读其代码生成器的模板引擎逻辑,可以深入理解如何通过数据库表结构逆向推导出 Java Entity、Mapper、Service 以及 Vue 页面。同时,其权限系统**(基于数据规则的控制)设计非常精妙,能够实现细粒度的数据权限控制,这对企业级应用开发具有极高的参考价值。
6. 潜在问题与改进建议
- 问题:
- AI 的幻觉风险:虽然集成了 AI,但 AI 生成的复杂业务逻辑(如 SQL 关联查询)可能存在错误,需要人工 Review。
- 生成的代码耦合度:生成的代码往往依赖于 JeecgBoot 自身的封装类(如 BaseEntity),这导致如果未来想脱离框架独立运行,代码迁移成本较高。
- 前端性能:由于大量使用动态组件和 JSON 配置渲染,在构建极其复杂的表单时,前端性能可能不如手写的高性能代码。
- 建议:应进一步加强 AI 生成代码的单元测试自动生成能力,以确保生成逻辑的正确性;同时提供更“纯净”
技术分析
以下是对 JeecgBoot 仓库的深入技术分析。基于您提供的描述(AI驱动、低代码、双模式、高星标 Java 项目)及其在 GitHub 上的表现,以下分析涵盖了架构、功能、实现细节、适用场景及工程哲学等多个维度。
JeecgBoot 技术深度分析报告
1. 技术架构深度剖析
1.1 技术栈与架构模式
JeecgBoot 采用典型的前后端分离架构,并在此基础上构建了微服务就绪的企业级开发平台。
- 后端核心栈:基于 Spring Boot。数据持久层采用 MyBatis-Plus(这是其代码生成的核心基础),权限认证使用 Shiro 或 Spring Security(通常早期版本以 Shiro 为主,新版支持 OAuth2/JWT)。
- 前端核心栈:紧跟 Vue 生态演进,目前主推 Vue 3 + TypeScript + Ant Design Vue(或 Element Plus)。这种组合保证了前端组件的丰富度和现代化。
- 架构模式:
- 单体分层架构:标准 MVC 分层。
- 插件化/模块化:通过 Maven 依赖管理,实现核心模块与业务模块的解耦。
- AI 融合架构:这是最新的架构演进点。通过 LangChain 或类似机制集成 LLM(大语言模型),将 AI 能力下沉至平台层,而非简单的应用层挂载。
1.2 核心模块与关键设计
- Online 代码生成器:这是 JeecgBoot 的心脏。它通过读取数据库元数据,结合 Freemarker 或 Velocity 模板引擎,一键生成 Controller、Service、Dao、Vue 页面及 SQL 脚本。
- Online 表单与报表:无需编写代码,通过配置拖拽生成复杂的 CRUD 表单和报表页面。其本质是动态构建前端组件配置和后端查询接口。
- AI 助手与 Agent 体系:集成了 RAG(检索增强生成)知识库、MCP(模型上下文协议)和插件体系。设计上采用了“平台+插件”的模式,允许 AI 调用平台的内部能力(如查询数据库、执行脚本)。
1.3 技术亮点与创新
- AI 驱动的流程编排:不同于传统的 BPMN 工作流,JeecgBoot 引入了“聊天式流程生成”。用户输入自然语言,AI 解析意图并自动生成流程图或配置表单。
- 混合开发模式:它成功解决了“零代码”与“代码开发”的冲突。开发者可以使用 Online 模式快速搭建 80% 的功能,然后下载生成的代码进行二次开发,避免了纯低代码平台的“黑盒”陷阱。
1.4 架构优势分析
- 高开发效率:通过元数据驱动和模板化,将重复性 CRUD 工作量降低了 80% 以上。
- 高可扩展性:基于 Spring Boot 的生态,使其可以无缝接入 Spring Cloud 生态,从单体平滑过渡到微服务。
- 技术栈主流化:没有使用冷门技术,降低了团队的学习成本和招聘难度。
2. 核心功能详细解读
2.1 主要功能与场景
- 智能代码生成:场景:企业后台管理系统(ERP, OA, CRM)。开发者设计好数据库表,点击生成,即可获得包含增删改查(CRUD)、权限控制、导入导出的完整功能模块。
- AI 聊天式操作:场景:非技术人员使用系统。用户直接对系统说“帮我查一下上个月销售额大于 10 万的订单”,系统自动转化为 SQL 并执行。
- 零代码表单构建:场景:业务流程变更频繁。运维或业务人员通过拖拽配置表单,立即发布,无需重启服务。
2.2 解决的关键问题
- Java 开发的“样板代码”地狱:解决了 Java 项目中 Pojo、Dao、Service、Controller 层大量重复代码的编写问题。
- 前端门槛:解决了后端开发者不精通 Vue/React 复杂交互的问题,通过配置化生成标准页面。
- 需求变更响应慢:通过 Online 配置修改表单和字段,无需重新编译部署即可响应部分业务变更。
2.3 与同类工具对比
- 对比 Ruoyi/Plus-Auth:JeecgBoot 的核心优势在于 Online 代码生成和 低代码配置能力。RuoYi 更像是一个脚手架,而 JeecgBoot 是一个平台。
- 对比 Mendix/OutSystems(国外商业低代码):JeecgBoot 是代码优先的。商业低代码往往绑定私有引擎,难以深度定制;JeecgBoot 生成的是标准 Spring Boot 代码,开发者拥有完全控制权。
- 对比 Spring Boot Admin:后者仅用于监控,JeecgBoot 提供了完整的业务开发闭环。
2.4 技术实现原理
- 代码生成原理:通过 JDBC 获取数据库元数据(表名、字段类型、注释),映射到 Java 对象,注入预定义的 FTL 模板文件中,通过 IO 流输出文件。
- Online 表单原理:前端基于 JSON Schema 或 Form Schema 协议动态渲染组件;后端通过动态 SQL 拼接或反射机制处理数据存储。
3. 技术实现细节
3.1 关键技术方案
- 动态数据源与多租户:利用 AbstractRoutingDataSource 实现动态数据源切换,支持 SaaS 模式的多租户架构。
- 权限控制(数据权限):通过 MyBatis 拦截器,在 SQL 执行前自动拼接权限过滤条件(如
WHERE create_by = 'currentUser'),实现了细粒度的数据行级权限控制。
3.2 代码组织与设计模式
- 结果封装:使用
Result对象统一封装 API 返回结构。 - AOP 切面:大量使用 AOP 处理日志、防重复提交、数据权限校验,保持业务代码纯净。
- Service 层泛型设计:
ServiceImpl<M, T>继承IService,利用 MyBatis-Plus 的增强接口,极大减少了单表操作的 SQL 编写。
3.3 性能与扩展性
- 缓存策略:集成 Redis,默认对字典、权限等热点数据进行缓存。
- 异步处理:集成消息队列(如 RabbitMQ/Kafka,视配置而定),处理耗时任务(如 AI 大模型推理、复杂报表导出)。
3.4 技术难点与解决
- 难点:AI 生成的代码如何保证安全性(SQL 注入)。
- 解决:强制使用 MyBatis-Plus 的预编译机制,限制 AI 生成原生 SQL,仅允许生成条件构造器代码。
4. 适用场景分析
4.1 最佳匹配场景
- 企业级 2B 应用:如 OA、ERP、CRM、CMS、各类管理系统。这类项目逻辑复杂但界面模式统一(表格+表单),JeecgBoot 效率最高。
- 内部工具与中后台系统:SaaS 产品的管理后台。
- 原型验证:快速搭建 MVP(最小可行性产品)。
4.2 最有效的情况
- 团队配置:小团队(3-10人),需要快速交付。
- 需求明确:数据库表结构相对稳定,业务逻辑主要是数据的增删改查和审批流。
4.3 不适合的场景
- 高并发互联网 2C 应用:如秒杀、即时通讯。虽然底层支持,但其生成的通用逻辑可能包含不必要的开销,且架构模式偏向传统管理型。
- 极度复杂的交互界面:如在线 Photoshop、Web 游戏。其基于 Ant Design 的表单模型无法支撑此类 Canvas 交互。
- 对性能极致敏感的场景:ORM 层的自动化和通用化会牺牲一部分 SQL 优化空间。
4.4 集成方式
- 作为脚手架:直接 Fork 仓库,删除 Demo 代码,作为项目基础。
- 作为模块依赖:通过 Maven 私服引入 JeecgBoot 核心,但这通常不推荐,修改源码的需求在开发中很常见。
5. 发展趋势展望
5.1 演进方向
- AI Agent 化:从“辅助生成”向“自主代理”演进。未来 JeecgBoot 可能不仅生成代码,还能直接运行 Agent 来执行业务逻辑(如自动处理工单)。
- 全栈 TypeScript:随着 Vue 3 和 Node.js 生态的融合,未来可能会在服务端引入 NestJS 或 Quarkus 等更现代的技术栈选项。
5.2 社区与改进空间
- 社区反馈:社区活跃度极高(4.5w+ stars),但文档更新有时滞后于代码。
- 改进空间:
- AI 幻觉控制:AI 生成的业务逻辑可能存在逻辑漏洞,需要引入更强的单元测试生成机制。
- 前端组件库的现代化:虽然已升级 Vue 3,但组件库的定制化能力有时仍显笨重。
5.3 前沿技术结合
- Serverless:结合 Docker/K8s,实现一键部署生成的微服务。
- 向量数据库:增强知识库检索能力,使 AI 助手更懂业务代码。
6. 学习建议
6.1 适合人群
- 初中级 Java 开发者:非常适合学习企业级项目的分层架构、权限管理。
- 全栈初学者:通过代码生成,理解前后端是如何通过 API 交互的。
6.2 学习路径
- 环境搭建:运行
jeecg-boot(后端)和jeecgboot-vue3(前端),打通全链路。 - 代码生成实验:创建一张表,使用 Online 生成代码,对比生成的代码与原始模板,理解变量替换逻辑。
- 权限源码追踪:从
@Permission注解入手,研究 Shiro/Security 过滤器链和 MyBatis 拦截器。 - AI 功能调试:配置 OpenAI 或其他大模型 API,调试 Prompt 流程。
6.3 实践建议
- 不要过度依赖:初期使用生成代码没问题,但一定要尝试手动修改生成的代码,理解其逻辑,否则会沦为“配置员”而非开发者。
7. 最佳实践建议
7.1 正确使用方式
- DB First 设计:先设计好数据库,利用注释完善字段说明,这是生成高质量代码的前提。
- 模板定制:不要使用默认模板。根据公司规范修改 FTL 模板,统一代码风格。
7.2 常见问题与解决
- **包路径扫描
代码示例
| |
| |
| |
案例研究
1:某大型制造企业供应链管理系统
1:某大型制造企业供应链管理系统
背景:
该企业为国内领先的汽车零部件制造商,拥有多个生产基地和数千家供应商。随着业务规模扩大,原有供应链系统存在数据孤岛、流程效率低下、响应速度慢等问题,亟需构建一个统一、高效的供应链管理平台。
问题:
- 各基地系统独立运行,数据无法实时共享,导致库存周转率低。
- 采购流程依赖人工操作,审批周期长,易出错。
- 缺乏实时数据分析能力,无法快速响应市场变化。
解决方案:
基于JeecgBoot快速搭建供应链管理系统,核心功能包括:
- 供应商管理:统一供应商信息库,实现资质审核与绩效评估自动化。
- 采购协同:在线招标、合同管理、订单跟踪全流程数字化。
- 库存优化:通过低代码平台快速集成IoT设备数据,实现库存实时监控与智能补货。
- 数据分析:内置报表引擎,自定义生成采购成本、交付时效等关键指标看板。
效果:
- 采购审批效率提升60%,库存周转率提高25%。
- 供应商交货准时率从82%升至95%,年节省采购成本约800万元。
- 开发周期缩短至传统模式的1/3,维护成本降低40%。
2:省级政务服务平台“一网通办”项目
2:省级政务服务平台“一网通办”项目
背景:
某省政务服务数据管理局需整合全省50+厅局的审批系统,解决群众“办事难、跑腿多”的痛点,目标是实现“一网受理、只跑一次”。
问题:
- 各厅局系统技术栈不一,数据接口标准混乱。
- 跨部门审批流程复杂,平均耗时15个工作日。
- 原有系统扩展性差,无法支撑高峰期(如年终结算)的高并发访问。
解决方案:
采用JeecgBoot作为核心开发框架,构建统一政务中台:
- 微服务架构:通过JeecgBoot的微服务模块拆分业务,支持弹性扩容。
- 流程引擎:集成Activiti工作流,可视化配置跨部门审批流程。
- 数据中台:利用低代码工具快速对接各厅局API,实现数据实时同步。
- 移动端适配:通过UniApp插件快速生成小程序端,支持群众掌上办事。
效果:
- 平均审批时间压缩至5个工作日,群众满意度提升至92%。
- 系统支持日均10万+访问量,峰值并发能力提升300%。
- 开发团队规模减少50%,运维成本年节约约200万元。
3:智慧农业物联网监测平台
3:智慧农业物联网监测平台
背景:
一家农业科技公司为全国10万亩农田提供智能化种植服务,需开发一套集环境监测、设备控制、农事管理于一体的平台。
问题:
- 原有系统无法兼容多厂商传感器(温湿度、土壤PH值等)。
- 农事记录依赖纸质表格,数据易丢失且难以追溯。
- 缺乏预警机制,病虫害响应滞后导致减产。
解决方案:
基于JeecgBoot快速迭代开发:
- 设备接入:通过自定义规则引擎适配主流工业协议(Modbus/MQTT)。
- 移动巡检:使用JeecgBoot移动端模板生成农事记录APP,支持离线操作。
- 智能预警:集成机器学习模型,结合历史数据自动推送病虫害风险预警。
- 可视化大屏:拖拽式设计工具实时展示气象、产量等关键指标。
效果:
- 农田管理效率提升40%,农药使用量减少18%。
- 病虫害响应时间从平均3天缩短至4小时,挽回经济损失超500万元/年。
- 平台3个月内完成从原型到上线,比预期开发周期缩短60%。
对比分析
与同类方案对比
| 维度 | JeecgBoot | RuoYi (若依) | Pig |
|---|---|---|---|
| 技术栈 | Spring Boot 2/3 + Vue 3 / React + Ant Design | Spring Boot + Vue 3 / React + Element Plus | Spring Boot 3 + Vue 3 / React + TypeScript |
| 代码生成器 | 强大,支持在线表单设计与代码生成 | 基础,支持单表、树表生成 | 基础,支持单表、树表生成 |
| 低代码能力 | 内置低代码平台,支持拖拽表单与流程 | 无低代码平台,仅代码生成 | 无低代码平台,仅代码生成 |
| 易用性 | 文档丰富,社区活跃,上手较快 | 文档详细,社区活跃,上手容易 | 文档完善,社区活跃,上手中等 |
| 性能 | 中等,依赖数据库元数据 | 良好,轻量级设计 | 优秀,微服务架构优化 |
| 扩展性 | 高,支持模块化与微服务 | 中等,单体架构为主 | 高,原生微服务支持 |
| 成本 | 开源免费,企业版收费 | 开源免费 | 开源免费 |
| 适用场景 | 中大型企业应用、快速开发 | 中小型项目、后台管理 | 微服务架构、分布式系统 |
优势分析
- 优势1:低代码平台强大,支持可视化表单设计与流程配置,显著提升开发效率。
- 优势2:代码生成器功能完善,支持复杂业务场景的代码生成,减少重复工作。
- 优势3:社区活跃,文档丰富,技术支持响应及时,适合团队快速上手。
- 优势4:支持多种前端技术栈(Vue、React),灵活适应不同团队需求。
不足分析
- 不足1:依赖数据库元数据,性能在超大规模数据场景下可能受限。
- 不足2:低代码平台的灵活性有限,复杂业务逻辑仍需手动编码。
- 不足3:微服务支持需额外配置,不如原生微服务框架(如Pig)轻量。
- 不足4:企业版功能收费,可能增加长期使用成本。
最佳实践
最佳实践指南
实践 1:基于代码生成器快速构建标准CRUD
说明: JeecgBoot 的核心优势在于其强大的代码生成器(Online Coding)。通过数据库表结构,一键生成包含前后端(Vue3 + Spring Boot)的完整代码。这不仅是提升开发效率的手段,更是为了保证系统代码风格、接口规范和权限控制的一致性。
实施步骤:
- 在数据库中设计好业务表结构,遵循 JeecgBoot 的命名规范(如主键为
id)。 - 登录系统,进入“在线代码生成”菜单,选择数据库表进行配置。
- 配置表单字段(如控件类型、是否必填、校验规则)和查询字段。
- 点击“生成代码”,将生成的 Zip 包解压至对应的前后端目录中。
- 重启后端服务,刷新前端页面即可使用。
注意事项: 生成代码后,尽量避免直接修改生成的 Base 类(如 Entity 或 Mapper 的基类),业务逻辑应写在 Service 层或扩展类中,以便后续重新生成覆盖时不丢失核心逻辑。
实践 2:利用 Online Form 在线表单实现零开发业务配置
说明: 针对简单的 CRUD 业务或流程审批表单,无需编写代码,可直接使用 JeecgBoot 的 Online Form(在线表单)功能。通过可视化拖拽配置表单,并配置对应的菜单权限,即可快速上线功能模块。
实施步骤:
- 在“Online 表单开发”中选择数据库表作为数据源。
- 配置表单布局、控件属性及 JavaScript 增强脚本。
- 在“Online 报表”或菜单管理中配置该表单的访问地址。
- 配置按钮权限(如增删改查)的可见性。
注意事项: 在线表单适合逻辑相对单一的场景。对于复杂业务逻辑、多表关联操作或高性能要求的场景,建议仍使用“实践 1”中的代码生成方式进行定制开发。
实践 3:遵循数据权限设计规范
说明: JeecgBoot 提供了灵活的数据权限机制。在开发多租户或部门级管理系统时,应充分利用框架提供的 @PermissionData 注解和 SysPermissionDataRule 机制,避免在业务代码中硬编码权限过滤逻辑。
实施步骤:
- 在数据库表中预留
create_by、create_dept_id等字段。 - 在 Mapper XML 或 Service 方法中,不要手动拼接 WHERE 条件过滤部门,而是使用框架提供的数据权限注解。
- 在系统管理->数据权限规则中配置具体的 SQL 片段(如
org_id = #{sys_user.orgId})。 - 在对应的 Controller 方法上添加
@PermissionData注解激活规则。
注意事项: 确保数据权限规则的 SQL 语法正确,避免因 SQL 注入风险或逻辑错误导致数据泄露。配置后需进行严格的功能测试。
实践 4:前后端分离与接口安全规范
说明: JeecgBoot 采用前后端分离架构。在开发过程中,必须严格遵循 RESTful API 设计规范,并利用框架内置的 Token 机制和接口签名机制保障通信安全。
实施步骤:
- 后端接口统一使用
@RestController和标准 HTTP 方法(GET, POST, PUT, DELETE)。 - 前端调用必须携带有效的
X-Access-Token请求头。 - 生产环境务必关闭 Swagger 接口文档的暴露或增加访问密码。
- 敏感操作(如删除、批量更新)应使用 POST 请求体,并在后端进行二次校验,防止 CSRF 攻击。
注意事项: 不要在前端代码中硬编码后台管理员的 Token 或密钥。定期更新依赖包以防止已知的安全漏洞(如 Fastjson 漏洞,建议使用 Jackson)。
实践 5:自定义校验器与全局异常处理
说明: 为了提供友好的用户体验,不应将原始的 Java 异常堆栈直接返回给前端。应利用 JeecgBoot 的全局异常处理机制,并结合 JSR303 校验规范进行参数校验。
实施步骤:
- 在 Entity 类中使用
@NotNull,@Email,@Length等 Hibernate Validator 注解。 - 后端统一捕获异常,使用
Result对象封装返回结果。 - 对于特定业务错误,抛出自定义业务异常(如
JeecgBootException),由全局处理器捕获并转换为统一的错误码和消息。 - 前端通过拦截器统一处理
200以外的 HTTP 状态码或success: false的业务响应,使用 Message 组件提示用户。
注意事项: 确保错误提示信息准确、易懂,避免暴露数据库表名或字段名等敏感信息给终端用户。
实践 6:Docker 容器化部署与微服务适配
说明: JeecgBoot 支持 Monolith(单体)和 Microservice(微
性能优化建议
性能优化建议
优化 1:数据库查询优化与慢SQL治理
说明: JeecgBoot 在处理复杂业务或大数据量时,若未对数据库查询进行优化,极易产生慢SQL(如全表扫描、深分页问题),导致系统吞吐量下降。特别是系统自带的日志查询、字典表查询等,在数据积累后容易出现性能瓶颈。
实施方法:
- 开启并分析慢日志: 配置
druid监控或数据库慢查询日志,定位执行时间超过 500ms 的 SQL 语句。 - 索引优化: 针对高频查询的
WHERE、ORDER BY、GROUP BY字段建立联合索引,并使用EXPLAIN验证索引是否生效。 - 深分页优化: 针对传统的
LIMIT offset, size深分页问题,改用 “延迟关联” 或 “书签记录法”(例如利用上一页最后一条数据的ID作为过滤条件)。 - 批量操作: 将循环单条插入/更新改为 MyBatis 的
batch模式或使用INSERT INTO ... VALUES (...), (...)语法。
预期效果: 接口响应时间(RT)平均降低 50%-80%,数据库 CPU 使用率显著下降。
优化 2:后端缓存机制升级
说明: JeecgBoot 默认集成了 Redis,但在高并发读取场景下(如首页大屏、字典表缓存),若缓存策略不当(如缓存雪崩、穿透),仍会大量冲击数据库。
实施方法:
- 本地缓存结合分布式缓存: 引入 Caffeine 或 Guava Cache 作为一级缓存(L1),Redis 作为二级缓存(L2),减少网络 I/O 开销,特别是针对字典表、系统配置等变更频率低的数据。
- 缓存预热与雪崩预防: 对核心数据在系统启动时进行预加载;给缓存过期时间(TTL)增加随机值,防止同一时间大面积失效。
- 注解优化: 在 Service 层合理使用
@Cacheable、@CacheEvict,并确保自定义 Key 能够区分租户或用户维度,避免数据混淆。
预期效果: 高频读取接口的 QPS 提升 200% 以上,数据库查询压力减少 90%。
优化 3:前端首屏加载与构建体积优化
说明: JeecgBoot 前端基于 Vue,随着业务模块增加,打包后的 chunk.js 体积会急剧膨胀,导致首屏加载时间(FCP)过长,影响用户体验。
实施方法:
- 路由懒加载: 确保所有非一级路由均使用动态
import()语法(JeecgBoot 脚手架默认支持,但需检查新增页面)。 - CDN 资源分离: 将
vue、antd、echarts等大型依赖库从vendor.js中剥离,改用 CDN 外链引入,减少主包体积。 - Tree Shaking: 配置 Webpack/Vite,仅打包 Ant Design Vue 中被实际使用的组件,而不是全量引入。
- Gzip/Brotli 压缩: 在 Nginx 层面开启静态资源 Gzip 压缩。
预期效果: 首屏加载时间减少 40%-60%,静态资源体积缩小 30%-50%。
优化 4:接口防刷与限流策略
说明: 在恶意爬虫或高并发业务场景下,JeecgBoot 的接口可能被过载调用,导致服务不可用。默认的 Token 机制无法防止合法 Token 的高频调用。
实施方法:
- 网关层限流: 若使用微服务版本,在 Gateway 配置 Sentinel 或 Resilience4j;若为单体版本,使用 Guava RateLimiter 或 Redis + Lua 实现令牌桶算法。
- 接口签名验证: 对关键写操作接口增加参数签名机制,防止参数篡改和重复提交。
- **
学习要点
- JeecgBoot 是一款基于代码生成器的低代码开发平台,旨在提升企业级应用开发效率。
- 核心功能包括在线表单设计、代码生成器和权限管理,支持快速构建业务系统。
- 采用前后端分离架构,前端基于 Vue3/Ant Design,后端支持 SpringBoot 微服务。
- 提供开箱即用的企业级特性,如数据字典、日志审计、多租户支持等。
- 通过可视化流程设计器简化工作流开发,集成 Activiti/Flowable 等引擎。
- 支持多数据库适配(MySQL/Oracle/PostgreSQL 等)和分布式部署方案。
- 活跃的开源社区提供丰富的插件生态和持续的技术支持。
学习路径
学习路径
阶段 1:环境搭建与基础入门
学习内容:
- JeecgBoot 框架架构介绍(前后端分离架构)
- 开发环境配置(JDK, Node.js, Maven, Redis, Nginx)
- 快速启动官方 Demo(Ant Design Vue 版)
- 后端基础:Spring Boot 基本配置、项目结构解析
- 前端基础:Vue3 基础语法、Ant Design Vue 组件库初识
- 代码生成器的使用(单表、树表生成)
学习时间: 1-2周
学习资源:
- JeecgBoot 官方文档
- JeecgBoot 官方 GitHub 仓库
- B站搜索 “JeecgBoot 入门教程”
学习建议: 建议先成功运行起官方 Demo,体验系统功能。重点学习如何使用代码生成器生成一个简单的 CRUD(增删改查)模块,这是 JeecgBoot 开发的核心。不要一开始就陷入源码细节,先会用。
阶段 2:核心功能开发与原理理解
学习内容:
- 后端核心:MyBatis-Plus 的使用与自定义 SQL 编写
- 后端核心:JeecgBoot 自带接口开发
- 权限管理:角色、菜单、按钮权限的配置与控制
- 表单开发:常用表单组件(下拉、弹窗、文件上传等)的使用
- 列表开发:列表配置、列自定义、查询条件配置
- 在线报表:Online 报表的使用与配置
学习时间: 2-3周
学习资源:
- JeecgBoot 官方文档 - 开发指南
- Ant Design Vue 官方文档
- JeecgBoot 低代码平台在线演示
学习建议: 尝试开发一个包含主从表(一对多关系)的功能模块,例如“订单管理”包含“订单明细”。理解 JeecgBoot 的数据字典和权限注解(@Permission)的使用方式。
阶段 3:进阶定制与源码分析
学习内容:
- 自定义代码生成器模板修改
- 后端流程:拦截器、过滤器、AOP 切面编程在 Jeecg 中的应用
- 前端进阶:Vue 生命周期、Vuex/Pinia 状态管理在项目中的应用
- 系统扩展:自定义登录逻辑、第三方登录集成(如 OAuth2)
- 积木报表(JimuReport)的复杂设计与打印
- 数据库设计与性能优化基础
学习时间: 3-4周
学习资源:
- JeecgBoot 源码
- 积木报表官方文档
- Spring Boot 实战书籍
学习建议: 此阶段需要深入阅读源码。建议尝试修改代码生成器的 ftl 模板文件,生成符合自己团队风格的代码。学习如何通过拦截器实现接口防重复提交或数据权限控制。
阶段 4:架构优化与微服务迁移
学习内容:
- 微服务架构:JeecgBoot Cloud 与单体版的区别
- 注册中心与配置中心
- 分布式事务处理
- Docker 容器化部署与 Docker Compose 编写
- Kubernetes (K8s) 基础部署概念
- 生产环境问题排查与监控
学习时间: 2-4周
学习资源:
- Spring Cloud Alibaba 官方文档
- JeecgBoot Cloud 部署文档
- Docker 官方文档
学习建议: 如果业务需要,开始研究 JeecgBoot 的 Cloud 版本。重点学习如何将单体应用拆分为微服务,并解决服务间调用和配置管理问题。掌握 Docker 部署是上线运维的必备技能。
常见问题
1: JeecgBoot 是什么?它主要解决什么问题?
1: JeecgBoot 是什么?它主要解决什么问题?
A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源的核心技术栈包括 Spring Boot(后端)和 Vue 3(前端),同时集成了 MyBatis-Plus、Ant Design Vue 等主流技术。
它主要解决的问题是:
- 提高效率:通过在线智能代码生成功能,可以快速生成单表、树表、主子表(一对多)的 CRUD(增删改查)代码,覆盖了后端 Controller、Service、Dao 以及前端页面和 API 调用,开发者无需手写重复代码。
- 降低门槛:提供了强大的表单设计器和报表设计器,允许开发者通过拖拽的方式快速构建复杂的业务表单和报表。
- 规范架构:提供了一套经过验证的企业级分布式架构方案,集成了权限管理、数据字典、日志管理等基础模块,让开发者专注于业务逻辑。
2: JeecgBoot 的技术栈和版本选择有哪些?
2: JeecgBoot 的技术栈和版本选择有哪些?
A: JeecgBoot 经历了多个版本的迭代,目前主要分为两个大的技术分支:
JeecgBoot 3.x 版本:
- 前端:Vue 3 + TypeScript + Vite + Ant Design Vue 3.x。
- 后端:Spring Boot 2.7.x 或 3.x + JDK 1.8/17/21 + MyBatis-Plus。
- 这是目前的主流推荐版本,性能更好,技术栈更新。
JeecgBoot 2.x 版本(旧版):
- 前端:Vue 2 + Webpack + Ant Design Vue 1.x。
- 后端:Spring Boot 2.x + JDK 1.8。
- 该版本主要用于维护旧项目,不再推荐新项目使用。
此外,JeecgBoot 支持多种数据库,如 MySQL、PostgreSQL、Oracle、SQL Server 等,并且支持微服务架构。
3: 如何使用 JeecgBoot 的代码生成器(Online 代码生成)?
3: 如何使用 JeecgBoot 的代码生成器(Online 代码生成)?
A: JeecgBoot 的核心亮点在于其 Online 代码生成功能,基本流程如下:
- 数据库建表:在数据库中创建一张物理表,并添加必要的字段注释。
- 在线配置:登录 JeecgBoot 系统,进入“在线开发” -> “Online 表单开发”菜单。系统会自动读取数据库表结构。
- 表单配置:
- 字段配置:设置每个字段在页面上的显示控件(如输入框、下拉框、日期选择器等)、校验规则(必填、正则等)。
- 页面配置:设置表单布局、查询条件、列表显示列等。
- 生成代码:配置完成后,点击“生成代码”。系统会生成一个压缩包,包含 Java 后端代码、Vue 前端代码以及 SQL 脚本。
- 代码集成:将生成的代码解压并复制到项目的对应目录中,重启后端服务,刷新前端菜单即可看到功能模块。
4: JeecgBoot 的权限机制是如何设计的?
4: JeecgBoot 的权限机制是如何设计的?
A: JeecgBoot 实现了细粒度的 RBAC(Role-Based Access Control,基于角色的访问控制)权限管理,主要通过以下几个维度控制:
- 菜单权限:控制用户能看到哪些左侧菜单和页面。
- 按钮权限:控制页面上的操作按钮(如“新增”、“删除”、“导出”)是否显示或可用。
- 数据权限:这是 JeecgBoot 的一个强项。它支持配置数据规则,例如“只能看自己创建的数据”或“只能看本部门的数据”。在代码层面,通过拼接 SQL 的 WHERE 条件来实现数据过滤。
- 接口权限:基于 Shiro(或 Spring Security)进行接口层面的鉴权,防止未授权的 API 请求。
5: JeecgBoot 是开源的吗?可以用于商业项目吗?
5: JeecgBoot 是开源的吗?可以用于商业项目吗?
A: 是的,JeecgBoot 是开源项目。
- 开源协议:早期版本使用的是 Apache License 2.0 协议。但在 3.0 版本之后,项目采用了双重许可模式。
- 社区版:免费开源,包含核心功能(代码生成、基础权限、表单等),允许商业使用,但必须保留原版权声明。
- 企业版/商业版:包含高级功能(如积木式报表、大屏设计器、移动端生成器等),通常需要付费授权,并提供商业支持服务。
对于大多数中小型项目,社区版的功能已经完全足够使用且免费。
6: 在使用 JeecgBoot 生成代码后,如何进行二次开发?
6: 在使用 JeecgBoot 生成代码后,如何进行二次开发?
A: JeecgBoot 生成的代码结构清晰,非常利于二次开发
思考题
## 挑战与思考题
### 挑战 1: 代码生成器实战
问题**: JeecgBoot 的代码生成器是其核心功能之一。请尝试配置数据库连接,并基于一张单表(例如 sys_log),生成包含前后端代码的基础 CRUD(增删改查)功能模块。
提示**: 注意检查 application.yml 中的数据库配置,并在代码生成器界面中正确选择表单风格(如单表、树表)以及模板路径(单表模板)。
实践建议
基于 JeecgBoot 的架构特性(低代码 + 代码生成)以及其作为企业级快速开发平台的定位,以下是针对实际开发场景的 7 条实践建议:
1. 严格遵循“在线开发”与“本地代码”的物理隔离原则
场景: 团队协作开发。 建议: JeecgBoot 的核心在于数据库驱动的在线表单设计。最佳实践是将“在线配置”视为元数据管理,而将本地 Java/Vue 代码视为核心业务逻辑。
- 具体操作: 在项目初期,由架构师或资深开发统一通过在线平台配置表单、菜单和权限。配置完成后,使用代码生成功能将代码导出到本地 IDE,并在本地进行复杂的业务逻辑开发。
- 常见陷阱: 频繁地直接在生产环境或共享开发环境的在线平台上修改配置,且未同步更新本地代码。这会导致“配置漂移”,即线上显示正常,但本地拉取代码后运行报错,因为本地代码结构与在线配置不匹配。
2. 深度定制代码生成器模板,拒绝二次搬运
场景: 项目初始化与标准化。 建议: JeecgBoot 默认生成的代码是通用的,直接用于生产环境往往缺乏企业级规范(如日志记录、异常处理、特定的注释风格)。
- 具体操作: 不要生成代码后再手动去修改 80% 的重复内容。应立即根据团队规范修改
jeecg-module-code或相关模板目录下的.ftl模板文件。将统一的 Controller 基类、Service 包装逻辑、前端 API 调用封装等写入模板。 - 收益: 确保团队生成的任何模块都符合公司安全与架构标准,减少后期“机械式”的代码修改工作。
3. 合理利用 Online 报表与积木报表,避免硬编码复杂 SQL
场景: 开发复杂的统计报表、大屏展示。 建议: JeecgBoot 内置的 JimuReport(积木报表)能力极强,能够处理多数据源、复杂交叉表和打印设计。
- 具体操作: 对于类 Excel 的复杂报表、打印模板、以及动态列查询,优先使用在线报表设计器。仅在报表逻辑涉及极其复杂的 Java 计算(无法用 SQL 表达)时,才考虑编写自定义的后端接口。
- 常见陷阱: 遇到复杂报表习惯性地手写 SQL 和前端循环拼接,这不仅开发效率低,后续维护(如增加一列指标)也非常痛苦。
4. AI 辅助开发的“验证闭环”机制
场景: 使用 JeecgBoot 的 AI 助手生成代码或流程。 建议: 虽然 JeecgBoot 提供了 AI 驱动的代码生成和聊天式操作,但 AI 生成的 SQL 和业务逻辑可能存在性能隐患或安全漏洞。
- 具体操作: 建立“AI 生成 -> 人工 Review -> 单元测试”的流程。特别是 AI 生生的建表 SQL 和关联查询,务必检查索引是否合理、是否存在 N+1 查询问题。
- 常见陷阱: 盲目复制粘贴 AI 生成的代码直接上线,导致数据库慢查询或权限控制失效。
5. 权限控制精细化:使用数据权限而非硬编码
场景: 多租户、部门级数据隔离。 建议: JeecgBoot 提供了强大的数据权限(Data Permission)配置功能。
- 具体操作: 在设计接口时,尽量利用框架自带的
@PermissionData注解或在线配置的数据规则来实现行级数据过滤。避免在每一个 Service 方法中手动编写WHERE dept_id = ...这种硬编码逻辑。 - 收益: 当业务逻辑变更(如从“查看本部门”变为“查看本部门及子部门”)时,只需修改配置,无需修改代码和重新部署。
6. 前端扩展:封装业务组件而非修改源码
场景: 前端页面定制。 建议: JeecgBoot 的
引用
- GitHub 仓库: https://github.com/jeecgboot/JeecgBoot
- DeepWiki: https://deepwiki.com/jeecgboot/JeecgBoot
注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。
站内链接
- 分类: 后端 / 开源生态
- 标签: 低代码 / JeecgBoot / Spring Boot / Vue3 / AI 辅助开发 / 代码生成 / 企业级开发 / 微服务
- 场景: 全栈开发 / 后端开发 / Web应用开发
相关文章
- JeecgBoot:AI 驱动的低代码平台,支持零代码与代码生成双模式
- JeecgBoot:AI低代码平台集成代码生成器与知识库
- JeecgBoot:集成AI低代码平台与代码生成器的Java开发框架
- JeecgBoot:集成AI低代码平台与代码生成器的企业级开发方案
- JeecgBoot:AI低代码平台与代码生成器 这篇文章由 AI Stack 自动生成,包含多次大模型调用,提供深度的结构化分析。