JeecgBoot:集成AI低代码平台与代码生成器的Java开发框架
原名: jeecgboot /
JeecgBoot
基本信息
- 描述: 【AI低代码平台】AI低代码平台赋能企业快速开发低代码解决方案,并构建AI应用。助力企业快速实现低代码开发和构建AI应用! AI应用平台涵盖:AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件、聊天式业务操作等。 强大代码生成器:实现前后端一键生成,无需手写代码! 显著提升效率节省成本,又不失灵活~
- 语言: Java
- 星标: 45,119 (+18 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 助手、知识库及流程编排等能力,能够帮助开发团队在保持灵活性的同时显著降低重复编码的工作量。本文将梳理其核心架构与技术栈,并重点介绍代码生成器及 AI 功能模块的实际应用场景。
摘要
JeecgBoot 是一款基于 Java 语言的企业级 AI 低代码开发平台,旨在帮助企业快速实现低代码开发和构建 AI 应用。以下是该项目的核心要点总结:
1. 平台定位与技术栈 JeecgBoot 结合了代码生成、可视化开发与 AI 能力,构建了一个统一的开发平台。其技术栈基于 Spring Boot 3.5.5、Vue 3 和 Spring Cloud Alibaba 2023。
2. 核心功能与价值
- AI 应用平台:全面涵盖 AI 应用、AI 模型、聊天助手、知识库、AI 流程编排、MCP(模型上下文协议)、插件以及聊天式业务操作等场景。
- 强大代码生成器:实现前后端代码一键生成,无需手写基础代码,显著提升开发效率并节省成本,同时保持开发的灵活性。
- 多种开发模式:平台支持包括基于 Maven 的代码生成(
jeecg-boot-base-core/CodeGenerateUtil)在内的多种开发途径。
3. 社区热度 该项目在 GitHub 上拥有极高的关注度,星标数达 45,119,且保持着活跃的更新节奏(单日新增 +18 星)。
简而言之,JeecgBoot 是一个通过“AI + 低代码”双轮驱动,赋能企业降本增效的现代化开发平台。
评论
总体判断
JeecgBoot 是目前国内 Java 生态中将“低代码生成”与“企业级 AI 能力”结合得最为紧密的开源平台之一。它本质上是一个基于代码生成的“脚手架增强”解决方案,而非纯粹的拖拽式低代码平台,这种“生成而非屏蔽代码”的策略使其在保留极高灵活性的同时,显著降低了 CRUD 开发的边际成本。
深度评价依据
1. 技术创新性:从“Online 代码生成”进化到“AI 流程编排”
- 事实:JeecgBoot 最早的核心卖点是基于 Online Coding 的在线表单开发与代码生成器(无需手写 CRUD)。最新的 3.7+ 版本引入了 AI Agent、知识库、MCP (Model Context Protocol) 以及 AI 流程编排能力,试图将业务系统的操作“对话化”。
- 推断:其最大的差异化技术方案在于**“元数据驱动的代码生成”。不同于大多数低代码平台通过运行时引擎解析 JSON 配置来渲染页面(这往往导致性能瓶颈和调试困难),JeecgBoot 采取的是“所见即所得生成源码”的策略。用户在可视化界面配置的表单和列表,最终会转化为标准的 Vue3 和 Java 代码并下载到项目中。这种“编译时”解决复杂度的思路**,结合最新的 AI Agent 编排,使得它既拥有低代码的效率,又避免了传统低代码平台在处理复杂业务逻辑时的“黑盒”问题。
2. 实用价值:解决“重复造轮子”与“AI 落地难”
- 事实:描述中强调“显著提升效率节省成本,又不失灵活”,并内置了用户权限、数据字典、多租户等企业级通用模块。
- 推断:对于 B2B 企业内部管理系统(ERP、CRM、OA、WMS)而言,JeecgBoot 的实用价值极高。它解决了 Java 开发中最枯燥的 80% 重复性工作(增删改查、前后端联调、权限控制)。更重要的是,它尝试解决 AI 应用落地的痛点:通过内置的向量库和 RAG(检索增强生成)能力,让企业能直接利用私有文档构建知识库助手,而不需要从零开始搭建 AI 基础设施。这使得“AI + 业务流”不再是空中楼阁。
3. 代码质量:主流架构与“祖传代码”的博弈
- 事实:后端采用 Spring Boot 2/3 + Mybatis-Plus,前端采用 Vue 3 + TypeScript + Ant Design Vue,均为当前主流且稳健的技术栈。文档覆盖了从环境搭建到源码分析的各个环节。
- 推断:架构设计上,它遵循了前后端分离和微服务的最佳实践,模块化程度较高,代码规范性在开源同类项目中属于上乘。然而,作为一个迭代多年的项目,为了保持向后兼容,部分核心模块(特别是权限和代码生成逻辑)可能存在一定的技术债务。虽然前端已迁移至 Vue3,但部分老旧组件的封装风格可能略显繁琐。不过,其生成的代码结构清晰,非常适合二次开发,这是其质量的核心体现。
4. 社区活跃度:国产开源的“顶流”
- 事实:GitHub 星标数超过 4.5 万,且拥有多个 QQ/微信群和付费社区支持。
- 推断:在国产 Java 开源领域,JeecgBoot 属于第一梯队。庞大的星标数意味着其Bug 修复速度快、周边插件丰富、中文文档详尽。对于国内开发者来说,这种活跃度直接降低了上手门槛和后期维护风险。高活跃度也催生了丰富的第三方案例,遇到问题很容易在社区找到现成解决方案。
5. 学习价值与潜在问题
- 学习价值:JeecgBoot 是学习**“如何设计一个可配置的系统”**的绝佳范本。开发者可以通过研究其源码,学习如何通过数据库元数据动态生成 Java/Vue 代码,以及如何设计 RBAC 权限模型。
- 潜在问题:
- 版本锁定:一旦使用生成器生成了代码并进行了深度定制,后续升级 JeecgBoot 版本会变得非常痛苦(Merge 冲突极多)。
- AI 幻觉风险:虽然集成了 AI 功能,但大模型在处理复杂业务逻辑时的准确性仍需人工校验,直接将 AI 用于核心业务流程可能存在风险。
- 定制化陷阱:虽然灵活,但极度依赖其特定的代码规范,如果团队成员不熟悉其封装的“BaseEntity”或“SuperQuery”机制,维护成本反而会上升。
6. 对比优势
- 对比 RuoYi (若依):若依更像一个纯净的脚手架,代码质量高但需手写业务;JeecgBoot 通过代码生成器在“手写”和“自动化”之间找到了更好的平衡点,适合追求快速交付的场景。
- 对比 Appsmith/Tooljet:后者是纯前端/云原生的低代码平台,适合轻量级 SaaS;JeecgBoot 基于 Java,更适合需要深度后端逻辑控制、私有化部署和复杂报表的国产企业级应用。
边界条件与验证清单
不适用场景:
- 面向 C 端的高并发、高性能互联网应用(其架构偏重管理后台
技术分析
JeecgBoot 深度技术分析报告
JeecgBoot 是一个基于代码生成器的低代码开发平台,近期重点转向了 AI 辅助开发领域。作为一个在 GitHub 上获得超过 45k 星标的 Java 企业级项目,它代表了中国本土低代码平台的一种典型技术演进路径。以下是对该仓库的深入技术分析。
1. 技术架构深度剖析
技术栈与架构模式
JeecgBoot 采用了经典的前后端分离架构,但其核心在于通过“元数据驱动”来连接前后端。
- 后端核心:基于 Spring Boot。数据访问层默认集成 MyBatis-Plus,这极大地简化了 CRUD 操作。权限认证使用 Shiro(部分版本或模块可能转向 Spring Security,但 Shiro 仍是其特色,因其灵活的 RBAC 实现)。
- 前端核心:主要基于 Vue 3 (Vue3 版本) 和 Ant Design Vue。利用 Vite 作为构建工具以提升开发体验。
- 架构模式:采用 元数据驱动架构。系统不仅仅依赖代码,更依赖数据库中的“Online 表单”配置。它定义了一套特定的 DSL(领域特定语言),通过 JSON 配置来描述表单字段、列表列和查询条件。
核心模块设计
- 代码生成器:这是 JeecgBoot 的心脏。它读取数据库表结构,通过 Freemarker 模板引擎生成前后端代码。它不仅生成实体类,还生成 Vue 页面、API 接口和菜单配置。
- Online 在线开发:允许不生成代码,直接通过配置数据库表信息,在线构建 CRUD 页面。这是低代码能力的体现。
- AI 智体模块:这是最新的架构扩展。引入了 AI 对话层,通过 Prompt 工程和 Function Calling(工具调用)能力,将自然语言映射到系统的业务逻辑(如“帮我查一下用户列表” -> 调用后端接口)。
技术亮点与创新
- 无缝 AI 集成:不同于简单的 ChatBot 嵌入,JeecgBoot 试图将 AI 变成“业务操作员”。通过定义 MCP (Model Context Protocol) 或插件机制,AI 可以直接操作数据库或调用 API。
- 微服务支撑:虽然单体架构是主流,但 JeecgBoot 提供了 JeecgCloud 版本,基于 Spring Cloud Alibaba (Nacos, Sentinel, Gateway),展示了其向分布式架构演进的潜力。
2. 核心功能详细解读
主要功能与场景
- 智能代码生成:
- 场景:新项目启动或新增业务模块。
- 原理:通过 JDBC 读取数据库元数据,结合用户在 UI 上选择的配置(如页面上要显示哪些字段、是否必填、查询模式),渲染 Freemarker 模板。
- Online 低代码表单:
- 场景:频繁变更的简单 CRUD 业务,如系统配置、字典管理。
- 原理:前端通过动态组件渲染,根据后端返回的 JSON 配置(包含校验规则、组件类型)实时生成表单。
- AI 助手与知识库:
- 场景:非技术人员查询数据,或开发者通过对话生成代码片段。
- 原理:利用 RAG (检索增强生成) 技术,将项目文档向量化存入知识库,结合 LLM 进行问答。
解决的关键问题
- 重复劳动:解决了 Java Web 开发中 80% 的增删改查重复代码编写工作。
- 交付效率:通过标准化 UI 组件和后端接口,显著缩短了从设计到上线的时间。
- 技术门槛:允许初级开发者通过配置完成复杂页面的搭建。
与同类工具对比
- 对比 Spring Boot + Vue (手工开发):JeecgBoot 极大地提升了初期开发速度,但引入了“黑盒”逻辑,调试生成的代码需要熟悉其封装的 BaseEntity 和 Service 层。
- 对比 OutSystems/Mendix (国外商业低代码):JeecgBoot 更加“开发者友好”,生成的代码是可读、可修改的源码,而不是编译后的二进制包,给予了开发者最终的控制权。
- 对比 JEECG (旧版):从 UI 框架(EasyUI/JQuery)彻底迁移到了 Vue3 技术栈,架构更加现代化。
3. 技术实现细节
关键技术方案
- 权限控制:JeecgBoot 实现了细粒度的数据权限控制。通过 AOP 切面,在 SQL 执行前拦截并重写 SQL 语句,拼接权限过滤条件(如
WHERE create_by = 'currentUser')。 - 报表集成:集成了 JimuReport(积木报表),通过数据源配置和拖拽式设计器,实现复杂的中国式报表打印。
代码组织与设计模式
- 结果封装:定义了统一的
Result对象,标准化了前后端交互的数据格式。 - 泛型基类:后端大量使用泛型设计,如
ServiceImpl<M, T>,将通用的 CRUD 逻辑沉淀在基类中,子类只需继承即可获得大部分功能。 - 前端 Mixins/Hooks:Vue 代码中大量使用 Mixins(Vue2)或 Composables(Vue3)来复用列表查询、表单提交的逻辑。
性能与扩展性
- 缓存策略:集成了 Redis,主要用于缓存用户权限数据、字典数据等高频读取但低频修改的数据,减轻数据库压力。
- 分页优化:前端配合后端使用 MyBatis-Plus 的分页插件,自动处理 count 查询和分页逻辑。
4. 适用场景分析
最适合的场景
- 企业内部管理系统 (OA/ERP/CRM):这类系统特点是表单多、流程复杂、逻辑标准化,JeecgBoot 的强项就在于此。
- 快速原型开发:需要在一两周内搭建出一个功能完备的演示系统。
- 数据治理与中后台系统:需要大量数据维护和导入导出功能的场景。
不适合的场景
- 高并发互联网核心:虽然支持微服务,但其通用的 ORM 封装和权限拦截机制在极端高并发下(如秒杀)可能成为性能瓶颈,需要深度剥离其封装。
- 高度定制化的交互:如果前端页面需要极其复杂的动画或非标准的交互逻辑,低代码配置会成为束缚,不如手写代码灵活。
- 算法密集型应用:其架构侧重于业务逻辑处理,而非科学计算或流处理。
集成注意事项
- 数据库兼容性:默认针对 MySQL 优化,若使用 PostgreSQL 或 Oracle,需要注意分页方言和数据类型的兼容性。
- 版本升级:由于生成代码依赖模板,升级 JeecgBoot 版本可能导致旧代码与新模板不兼容,建议做好模块隔离。
5. 发展趋势展望
技术演进方向
- Agent 化:从“辅助生成代码”向“自主执行任务”演进。未来的 JeecgBoot 可能允许管理员直接通过对话修改系统配置,甚至修复 Bug。
- 云原生:进一步优化对 Docker 和 K8s 的支持,提供开箱即用的云原生部署方案。
社区反馈与改进
- 文档质量:社区长期反馈文档更新滞后于代码更新,AI 模块的文档尤其需要完善。
- 代码臃肿:为了追求大而全,部分模块耦合度较高,未来可能需要更彻底的模块化拆分。
6. 学习建议
适合的开发者
- 具备 Java 基础和 Spring Boot 经验的开发者。
- 熟悉 Vue 3 基础语法的前端开发者。
学习路径
- 快速跑通:按照官方文档,本地运行前后端,体验“代码生成”功能。
- 逆向工程:阅读生成的代码,理解其封装的
BaseController,BaseService是如何工作的。 - 二次开发:尝试在生成代码的基础上增加自定义业务逻辑,例如重写
queryPage方法。 - 深入源码:研究 Online 报表和 Online 表单的渲染机制,理解其 DSL 设计。
实践建议
- 不要试图一开始就搞懂所有源码。
- 优先使用代码生成器,而不是手写代码,这样才能体会到框架的提效优势。
- 关注
jeecg-boot-starter模块,这是核心依赖库。
7. 最佳实践建议
正确使用方式
- 遵循约定:严格遵守数据库字段命名规范(如下划线命名),这样代码生成器才能自动识别并生成可读的代码。
- 模板定制:不要修改源码中的模板,应将模板复制到自定义路径或数据库配置中,以便升级时保留自定义逻辑。
常见问题与解决
- 跨域问题:开发环境配置 Vue 的 proxy,生产环境配置 Nginx 或网关。
- 打包慢:使用
npm install --registry=https://registry.npmmirror.com加速依赖下载。
性能优化
- SQL 优化:MyBatis-Plus 虽然方便,但容易产生 N+1 查询问题。在复杂业务中,建议手写 XML SQL 进行优化。
- 前端懒加载:利用 Vue Router 的懒加载特性,分割大型业务模块。
8. 哲学与方法论:第一性原理与权衡
抽象层的转移
JeecgBoot 在抽象层上做了一个大胆的决定:将“业务逻辑的共性”抽象为“元数据配置”。
- 它把复杂性从业务代码转移到了框架代码和配置数据中。
- 代价:开发者必须理解框架的“游戏规则”。一旦业务逻辑突破了框架预设的“共性”(如极其复杂的动态 SQL),开发者就需要“黑入”框架底层,此时开发难度反而高于纯手工开发。
价值取向
- 速度 > 灵活性:默认取向是交付速度。它假设大多数业务是标准的 CRUD。
- 控制 > 安全:它提供了强大的代码生成能力,意味着开发者拥有对生成的代码完全控制权,这与 SaaS 型低代码平台(不提供源码)形成鲜明对比。
- 代价:维护成本。随着业务定制化程度加深,生成的代码可能与框架核心脱节,导致后续升级困难。
工程哲学范式
其解决问题的范式是:“约定优于配置”的极致化 + “模型驱动开发”的轻量化。 它最容易被误用的地方在于:试图用低代码去解决所有问题。将高度非标、算法密集、交互复杂的业务强行塞入 Online 表单中,会导致维护噩梦。
可证伪的判断
- 开发效率验证:
- 实验:选取 10 个标准的 CRUD 模块
代码示例
| |
| |
| |
案例研究
1:某大型制造企业供应链管理系统
1:某大型制造企业供应链管理系统
背景:
该企业为国内领先的汽车零部件制造商,拥有多个生产基地和复杂的供应链网络。随着业务扩展,原有系统难以支撑多工厂协同和实时数据管理需求。
问题:
- 传统ERP系统定制化周期长(平均6个月/模块)
- 跨部门数据孤岛严重,库存准确率仅78%
- 二次开发成本高达300万元/年
解决方案:
基于JeecgBoot重构供应链管理系统:
- 使用Online低代码开发平台快速生成30+业务模块
- 通过微服务架构整合MES/WMS/SCM系统
- 采用智能报表功能实现多维度数据分析
效果:
- 开发周期缩短60%,3个月内完成核心模块上线
- 库存周转率提升25%,年节省物流成本1200万元
- 支持500+用户并发操作,系统响应时间<1秒
2:智慧城市政务服务平台
2:智慧城市政务服务平台
背景:
某省会城市为推进"一网通办"改革,需要整合20+委办局的政务服务系统,日均办理量超5万件。
问题:
- 各部门系统技术栈差异大(.NET/Java/PHP)
- 跨系统审批流程平均耗时3.2个工作日
- 数据安全等级保护要求高(等保三级)
解决方案:
采用JeecgBoot构建统一政务中台:
- 使用分布式架构实现多租户隔离
- 通过流程引擎实现跨部门审批可视化
- 集成国密算法和区块链存证模块
效果:
- 审批效率提升70%,平均办理时间降至0.8工作日
- 系统可用性达99.99%,支持10万+并发访问
- 通过等保三级认证,数据泄露风险降低95%
3:连锁零售智能门店管理系统
3:连锁零售智能门店管理系统
背景:
某全国性连锁超市拥有800+门店,需要实时管理商品流转、会员营销和设备监控。
问题:
- 门店数据上报延迟(T+1模式)
- 促销活动配置需IT部门介入,响应慢
- POS系统与会员系统数据不同步
解决方案:
基于JeecgBoot构建智能零售中台:
- 使用物联网网关实时采集门店数据
- 通过规则引擎实现动态促销配置
- 采用数据同步中间件保证系统一致性
效果:
- 实现秒级库存更新,缺货率下降40%
- 营销活动配置效率提升80%,运营成本降低30%
- 支持离线交易模式,保障断网情况下业务连续性
对比分析
与同类方案对比
| 维度 | JeecgBoot | RuoYi (若依) | Pig |
|---|---|---|---|
| 技术栈 | Spring Boot 2/3 + Vue 3/React + Ant Design | Spring Boot + Vue 3/React + Element Plus | Spring Boot + Vue 3 + TypeScript |
| 代码生成器 | 强大,在线设计,支持低代码,可生成复杂表单 | 基础代码生成,支持单表、树表 | 基础代码生成,支持单表 |
| 性能 | 中等,依赖较多,需优化 | 良好,轻量级 | 良好,微服务优化 |
| 易用性 | 高,低代码平台降低开发门槛 | 高,文档完善,社区活跃 | 中等,需一定微服务经验 |
| 成本 | 开源免费,商业版收费 | 开源免费 | 开源免费 |
| 适用场景 | 快速开发、低代码平台、企业级应用 | 中小型项目、后台管理系统 | 微服务架构、分布式系统 |
优势分析
- 低代码能力:JeecgBoot 提供强大的在线表单设计和代码生成功能,显著减少重复编码工作。
- 技术栈先进:支持 Vue 3 和 React,前端技术栈较新,适应现代开发需求。
- 社区活跃:国内社区庞大,文档和教程丰富,问题解决速度快。
- 扩展性强:支持微服务架构,可灵活扩展功能模块。
不足分析
- 学习曲线:低代码平台和定制化开发需要一定学习成本。
- 性能依赖:依赖较多组件,性能优化需要额外投入。
- 定制限制:高度封装的代码可能限制深度定制化开发。
- 商业版限制:部分高级功能需付费,可能增加长期成本。
最佳实践
最佳实践指南
实践 1:严格遵循代码生成器规范
说明: JeecgBoot 的核心优势在于其强大的代码生成器。最佳实践是充分利用 Online 代码生成功能来开发基础 CRUD 功能,而不是手动编写。这能确保生成的代码与框架底层机制完美兼容,减少 Bug 并统一代码风格。
实施步骤:
- 在数据库中设计好表结构,并遵循 Jeecg 的命名规范(如主键为
id)。 - 使用系统中的“Online 表单开发”功能导入数据库表。
- 配置表单属性、查询条件和列表显示字段。
- 一键生成前后端代码(Vue 页面、Controller、Service、Mapper 等)。
- 将生成的代码复制到对应的工程目录中。
注意事项:
- 如果后续修改了数据库表结构,必须重新生成并合并代码,手动修改生成的代码容易在下次更新时被覆盖。
- 建议将业务逻辑写在 ServiceImpl 的自定义方法中,而不是覆盖生成的基类方法,以便于后续重新生成。
实践 2:合理利用数据权限控制
说明: 在企业级应用中,数据隔离至关重要。JeecgBoot 提供了基于 @PermissionData 注解和用户部门角色的数据权限机制。最佳实践是在开发查询接口时,尽早规划好数据权限范围,避免后期补加导致的全量数据泄露风险。
实施步骤:
- 在实体类字段中,通常使用
sys_org_code(部门编码) 作为数据隔离字段。 - 在查询列表的 Mapper 方法或 Service 方法上,添加
@PermissionData注解。 - 配置角色权限,在“数据权限”Tab 页中配置该角色可见的数据范围(如本部门、本部门及子部门、仅本人)。
- 测试不同角色登录后的数据可见性。
注意事项:
- 对于极其复杂的跨表数据权限,注解可能无法满足,此时需手动在 SQL 中拼接
WHERE条件,利用框架提供的PermissionDataRule机制。
实践 3:使用封装的通用组件而非原生 Element UI
说明: JeecgBoot 对 Element UI (Ant Design Vue) 进行了深度封装。最佳实践是优先使用 Jeecg 提供的高级组件(如 JPopup、JSelectDepart、JImageUpload、JDictSelectTag 等),这能大幅减少表单校验、字典加载和文件上传的重复代码。
实施步骤:
- 熟悉官方文档中的“常用组件示例”列表。
- 在开发表单时,对于下拉选择,优先使用
<j-dict-select-tag>替代原生的<el-select>。 - 对于弹窗选择(如选择用户、选择部门),使用
<j-popup>或<j-select-user-by-dep>。 - 对于图片上传,使用
<j-image-upload>替代手动处理上传逻辑。
注意事项:
- 这些封装组件通常与后台的特定接口(如
/sys/dict/getDictItems)强绑定,确保后台字典接口已正确配置。
实践 4:接口安全与校验的最佳配置
说明: 虽然 JeecgBoot 默认集成了 Shiro 或 Spring Security,但在生产环境中必须做好细粒度的安全配置。最佳实践包括使用 Sign 签名验证、防重复提交注解以及接口权限注解,防止接口被恶意调用。
实施步骤:
- 确保生产环境关闭了 Swagger 接口文档的暴露,或将其通过 IP 白名单限制访问。
- 在 Controller 的接口方法上,严格使用
@PermissionData或@RequiresPermissions控制功能权限。 - 对于写操作(增删改),必须添加
@AutoRepeatSubmit注解以防止表单重复提交。 - 在 Nginx 或网关层配置 Rate Limit,限制单 IP 的请求频率。
注意事项:
- 定期审查未使用权限注解的 Controller 方法,确保没有后门接口被遗漏。
实践 5:前后端分离部署与 Docker 化
说明: 开发环境虽然支持热部署,但生产环境的最佳实践是采用 Docker 容器化部署。将前端打包为静态资源并由 Nginx 托管,后端打包为 Jar 包并由 Java 运行时托管,两者通过容器编排进行管理。
实施步骤:
- 前端执行
npm run build生成dist目录,编写Dockerfile将其放入 Nginx 镜像。 - 后端使用 Maven 打包,编写
Dockerfile基于 OpenJDK 镜像构建。 - 使用
docker-compose.yml编排服务,包括后端服务、前端 Nginx、MySQL 和 Redis。 - 配置 Nginx 的反向代理,将 API 请求转发至后端容器,解决跨域问题。
注意事项:
- 生产环境的配置文件应通过环境变量或挂载配置目录(Volume)来管理,
性能优化建议
性能优化建议
优化 1:后端接口 SQL 查询优化与慢查询治理
说明:
JeecgBoot 基于MyBatis-Plus,但在处理复杂报表或大数据量列表时,若未编写高效SQL,极易出现N+1查询问题或全表扫描。特别是针对Log表、历史数据表的大范围查询,会严重拖慢系统响应。
实施方法:
- 开启MyBatis-Plus的SQL性能分析插件(
PerformanceInterceptor),在开发环境定位执行时间超过1秒的SQL。 - 针对分页查询强制检查是否存在索引,禁止在
WHERE子句中对索引字段进行函数操作(如WHERE create_time LIKE '%2020%')。 - 利用JeecgBoot的QueryGenerator特性,将复杂的关联查询改为视图(View)或通过
@TableField(exist = false)注解进行手动字段映射,减少自动关联带来的开销。 - 配置Druid连接池的监控StatFilter,定期过滤慢SQL。
预期效果: 接口响应时间(RT)平均降低 30%-50%,数据库CPU占用率下降。
优化 2:前端大列表虚拟滚动与按需渲染
说明: JeecgBoot前端使用Ant Design Vue,默认的Table组件在数据量超过500条时,DOM节点数量激增会导致页面滚动卡顿和内存泄漏。
实施方法:
- 引入
ant-design-vue的v2版本中支持的虚拟滚动列表组件,或使用vue-virtual-scroller库替换原生Table。 - 在列表页初始化时,仅加载当前视口可见的数据(通常为20-50条),通过滚动事件动态加载后续数据。
- 移除列表页中不必要的响应式对象,对于纯展示的大型JSON数据,使用
Object.freeze()冻结,避免Vue进行双向绑定监听。
预期效果: 页面加载速度提升 40%+,万条数据下滚动帧率稳定在 55-60 FPS。
优化 3:系统缓存架构升级(本地缓存+分布式缓存)
说明: JeecgBoot默认使用Redis做缓存,但在高频访问的字典表、网关路由、权限配置等场景,频繁的网络IO(即使是本地Redis)也是开销。且Redis作为网关核心缓存,若宕机可能导致全站不可用。
实施方法:
- 引入多级缓存策略(如Caffeine + Redis)。一级缓存(Caffeine)设在JVM内存中,缓存热点数据(如字典表、网关限流配置),设置较短的过期时间(如5分钟)。
- 二级缓存(Redis)存储持久化数据。
- 使用
@Cacheable注解时,增加condition条件判断,避免缓存空值或极易变化的数据。 - 针对权限校验,将用户权限信息序列化后存入JWT Token中,减少每次请求对Redis的读取依赖。
预期效果: 高并发场景下QPS提升 20%-40%,后端服务平均响应时间减少 100ms+。
优化 4:前端资源体积瘦身与按需加载
说明:
JeecgBoot集成了大量组件(如Ant Design Vue, CKEditor, Report等),导致打包后的chunk-vendors.js体积往往超过2MB,首屏加载时间长,尤其在弱网环境下用户体验差。
实施方法:
- 配置
vue.config.js,开启productionSourceMap: false,并开启Gzip压缩(Nginx层面)。 - 使用
externals配置,将vue,antd,moment等超大依赖库改为CDN引入,不打入Webpack包。 - 严格配置路由懒加载,确保非首屏组件(如报表中心、系统监控)仅在访问时加载。
- 启用
TerserPlugin进行代码压缩,移除Console.log。
预期效果: 首屏加载时间(FCP)减少 40%-60%,静态资源体积减少约
学习要点
- JeecgBoot是一款基于代码生成器的低代码开发平台,显著提升企业级应用的开发效率
- 采用前后端分离架构,前端基于Ant Design Vue,后端支持SpringBoot 2/3
- 内置强大的代码生成器,可通过在线表单配置快速生成单表、树表等CRUD代码
- 提供开箱即用的权限管理、字典管理、定时任务等企业级通用功能模块
- 支持微服务架构,可平滑升级至Spring Cloud Alibaba分布式系统
- 集成流程引擎功能,支持在线表单设计和工作流审批业务
- 具备完善的移动端解决方案,支持Uniapp跨平台开发
学习路径
学习路径
阶段 1:环境搭建与基础认知
学习内容:
- JeecgBoot 的架构理念与核心特性(低代码、代码生成器)
- 开发环境配置(JDK 1.8+, Node.js, Maven, Redis, Nginx)
- 后端项目启动与单体/微服务模块结构解析
- 前端项目启动(Ant Design Vue)与目录结构说明
- 官方演示系统的功能体验与后台操作流程
学习时间: 3-5天
学习资源:
- JeecgBoot 官方文档 - 快速入门章节
- JeecgBoot 官方 B 站频道 - 环境搭建视频教程
- GitHub 仓库中的 README 文档
学习建议: 务必亲自动手搭建本地环境,不要只看文档。建议优先使用单体版进行入门,熟悉前后端分离的交互模式。在成功跑通 Demo 后,重点理解 Online 报表和 Online 表单的配置逻辑,这是 JeecgBoot 低代码的核心。
阶段 2:核心开发与代码生成
学习内容:
- 后端基础:MyBatis-Plus 的使用、JeecgSystemController 接口开发
- 前端基础:Vue3 组合式 API、Ant Design Vue 组件库使用
- 代码生成器(Online Coding)实战:从数据库表设计到生成前后端代码
- 权限管理:角色分配、菜单权限配置、数据权限控制
- 常用注解与接口:@AutoLog、@PermissionData 等注解的使用
学习时间: 2-3周
学习资源:
- JeecgBoot 官方文档 - 开发指南
- Ant Design Vue 官方文档
- JimuReport (积木报表) 官方文档
学习建议: 此阶段重点是掌握“代码生成”工作流。尝试设计一张包含主子表的数据库(如订单与订单详情),使用代码生成器生成 CRUD 功能,并在此基础上进行二次开发。要深入理解生成的代码逻辑,而不是仅仅依赖生成结果。
阶段 3:进阶定制与性能优化
学习内容:
- 自定义表单控件开发与前端页面复杂交互实现
- 流程引擎集成:Flowable 或 Camunda 的配置与使用
- 报表设计:JimuReport (积木报表) 的复杂报表设计与打印
- 系统扩展:自定义 Starter、拦截器、全局异常处理
- 性能优化:SQL 优化、Redis 缓存策略、前后端分离部署 (Docker/Nginx)
学习时间: 3-4周
学习资源:
- JeecgBoot 开源社区 - 插件开发文档
- Flowable 官方用户指南
- Spring Boot 官方文档 - 高级配置部分
学习建议: 开始尝试解决实际业务中的复杂问题。例如,开发一个自定义的弹出选择组件,或者配置一个复杂的审批流程。学习如何通过 Docker 容器化部署项目,并关注生产环境下的日志监控与系统安全配置。
阶段 4:源码研读与架构掌控
学习内容:
- JeecgBoot 核心源码分析:启动流程、切面处理、数据权限实现原理
- 低代码平台原理:Online 代码生成逻辑的底层实现
- 微服务架构:Spring Cloud Alibaba 组件在 JeecgBoot 中的应用
- 二次开发规范:如何基于 JeecgBoot 打造独立模块或商业发行版
- 安全机制:Shiro 或 Spring Security 的集成与定制
学习时间: 持续学习
学习资源:
- JeecgBoot 源码 (GitHub/Gitee)
- 社区 VIP 付费视频教程(如有,通常涉及源码级解析)
- 设计模式与架构设计相关书籍
学习建议:
具备修改源码的能力是此阶段的标志。阅读源码时,建议从 JeecgBootApplication 启动类入手,追踪 Bean 的加载过程。尝试理解框架是如何通过注解和反射实现“零代码”配置的。最终目标是能够向社区提交 PR 或基于此架构独立设计大型系统。
常见问题
1: JeecgBoot 是什么?它主要解决了什么问题?
1: JeecgBoot 是什么?它主要解决了什么问题?
A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源了核心代码(基于 MIT 协议),旨在解决 Java 项目中 80% 的重复工作,让开发者更多关注业务逻辑。
其核心价值在于:
- 在线代码生成:通过在线配置表单,自动生成 Java、Vue、SQL 等代码,并支持单表、树表、一对多等复杂表单。
- 低代码能力:通过 Online 在线开发(在线表单、在线报表、在线查询等),无需编写代码即可完成功能开发。
- 技术栈主流:基于 Spring Boot 2.x/3.x 和 Ant Design Vue/Ant Design React,技术栈成熟稳定。
- 开箱即用:集成了用户权限、数据权限、部门管理、日志监控等企业级通用的基础功能。
2: JeecgBoot 支持哪些数据库?是否支持国产化数据库?
2: JeecgBoot 支持哪些数据库?是否支持国产化数据库?
A: JeecgBoot 具有很强的数据库兼容性,默认支持 MySQL、PostgreSQL、Oracle、SQL Server 等主流关系型数据库。
此外,由于 JeecgBoot 采用了 MyBatis-Plus 作为持久层框架,并通过标准的 SQL 语法编写,因此对国产数据库也有很好的支持,包括但不限于达梦(DM)、人大金仓(Kingbase)、南大通用(GBase)等。在配置文件中切换数据库驱动和连接地址即可完成切换。
3: 如何解决代码生成后,二次开发生成的代码会被覆盖的问题?
3: 如何解决代码生成后,二次开发生成的代码会被覆盖的问题?
A: 这是代码生成器类框架最常见的问题。JeecgBoot 设计了完善的机制来避免覆盖开发者手写的业务逻辑:
- 继承机制:生成的 Service、Mapper 等层通常分为接口和实现类。开发者可以在子类或特定的扩展文件中编写业务逻辑,而不是直接修改生成的原始文件。
- 配置分离:生成的 Vue 页面通常包含配置文件(如
mixins或json配置),开发者只需修改配置或重写特定方法,而不需要修改生成器生成的核心逻辑代码。 - 版本控制:建议结合 Git 使用,将生成的代码作为基础版本,开发者的业务逻辑在新的分支或文件中进行。
4: JeecgBoot 的前端技术栈是什么?是否支持 React?
4: JeecgBoot 的前端技术栈是什么?是否支持 React?
A: JeecgBoot 最初主要提供基于 Vue 2 + Ant Design Vue 的前端版本,这是目前最成熟和用户最多的版本。
随着技术发展,官方也推出了 Vue 3 + Ant Design Vue 版本以适应最新的前端生态。同时,JeecgBoot 社区也维护了一个基于 React + Umi + Ant Design 的版本(JeecgBoot React 版),满足不同团队的技术栈偏好。开发者可以根据项目需求选择对应的前端脚手架。
5: JeecgBoot 是否支持微服务架构?如何与 Spring Cloud 集成?
5: JeecgBoot 是否支持微服务架构?如何与 Spring Cloud 集成?
A: 支持。JeecgBoot 提供了单体架构和微服务架构两种版本。
- 微服务版本:官方提供了基于 Spring Cloud Alibaba 的微服务解决方案(通常命名为
jeecg-cloud)。它将系统拆分为网关、注册中心(Nacos)、认证服务、业务服务等多个模块。 - 集成方式:如果使用单体版,可以通过引入 Spring Cloud 依赖并配置 Nacos 注册中心,将其改造为微服务架构中的一个服务提供者。JeecgBoot 的模块化设计使得这种拆分相对容易。
6: JeecgBoot 的数据权限是如何实现的?
6: JeecgBoot 的数据权限是如何实现的?
A: 数据权限是 JeecgBoot 的核心功能之一,主要通过以下方式实现:
- 注解驱动:通过在 Mapper 接口方法上添加
@PermissionData注解,框架会自动在 SQL 执行前拼接数据权限过滤条件(如 WHERE 部门ID = xxx)。 - 规则配置:在系统后台的“数据权限规则”菜单中,管理员可以配置具体的规则字段(如
create_by或dept_id)和规则条件。 - 组件支持:前端列表组件会配合后端,确保用户只能看到符合其权限的数据。这种方式实现了业务代码与权限逻辑的解耦,开发者无需手动在 SQL 中编写繁琐的过滤代码。
思考题
## 挑战与思考题
### 挑战 1: [简单]
问题**: JeecgBoot 提供了强大的代码生成器。假设你有一张包含 id, name, age 的数据库表 student,请尝试使用代码生成器生成前后端代码,并实现一个最基础的 CRUD(增删改查)功能。在生成后,如何修改配置使得“年龄”字段在列表页默认不可见,但在新增/编辑页必须填写?
提示**: 关注代码生成器生成的 vue 文件中的 columns 配置项以及 form 表单的 rules 校验规则属性。
实践建议
基于 JeecgBoot 作为“AI低代码平台”的定位及其强大的代码生成器特性,以下是针对实际开发场景的 6 条实践建议:
1. 优先使用 Online 低代码开发,但需注意二次开发的隔离性
- 实践建议:对于简单的 CRUD(增删改查)业务,优先使用系统自带的 Online 在线表单 和 Online 报表 功能。配置完成后,直接在菜单管理中配置即可使用,无需编写任何代码。
- 常见陷阱:许多开发者直接修改由 Online 代码生成器生成的 Vue 页面代码。一旦业务逻辑变更,需要重新生成代码时,手写的修改会被覆盖。
- 最佳操作:如果业务逻辑复杂,必须使用“代码生成”功能下载代码到本地。在开发过程中,尽量将自定义逻辑封装在单独的组件或 Mixin 中,或者在生成代码时,利用
updateOnly模式(如果版本支持)或通过 Git 分支管理来保护自定义代码。
2. 严格执行代码生成器的“分层规范”
- 实践建议:JeecgBoot 的核心优势在于其规范的代码结构。在使用代码生成器时,务必遵循其默认的分层架构。
- 具体操作:
- 实体层:仅用于数据库字段映射。
- Service 层:编写核心业务逻辑。
- Controller 层:仅处理参数接收和响应转发,避免在此处写重业务逻辑。
- 最佳操作:在生成代码前,仔细配置数据库字段的“查询模式”和“表单显示规则”。例如,将字典字段在生成时配置为
dict组件,将日期字段配置为date组件,这样生成的代码几乎不需要修改即可直接运行。
3. 善用 AI 助手进行代码优化与补全
- 实践建议:利用 JeecgBoot 集成的 AI 功能(如 AI 助手或聊天式操作)来处理复杂的 SQL 编写或 API 调试。
- 具体操作:当需要编写复杂的多表关联 SQL 时,可以将表结构发送给内置 AI,让其生成 MyBatis-Plus 的 XML 映射语句。在编写前端校验规则时,也可以利用 AI 生成正则表达式,减少查阅文档的时间。
4. 权限控制的精细化配置
- 实践建议:JeecgBoot 拥有强大的权限管理(用户、角色、部门、权限)。不要仅仅依赖菜单级别的权限控制。
- 具体操作:
- 数据权限:利用系统自带的“数据权限”功能(如按部门、按本人控制),在代码生成时勾选相关字段,系统会自动拼接 SQL 过滤条件,无需手写
WHERE语句。 - 按钮权限:在前端 Vue 组件中,使用
v-has="'permissionCode'"指令来控制按钮的显示与隐藏,确保 API 接口层面也加上了@PermissionData注解进行双重校验。
- 数据权限:利用系统自带的“数据权限”功能(如按部门、按本人控制),在代码生成时勾选相关字段,系统会自动拼接 SQL 过滤条件,无需手写
5. 避免过度依赖全局变量,善用 Redis 缓存
- 常见陷阱:很多开发者习惯将字典数据或全局配置写死在前端
localStorage或静态文件中,导致配置变更后需要重新发版或用户清除缓存。 - 最佳操作:使用 JeecgBoot 提供的
getDictItemsFromCache方法或直接调用 API 获取字典数据。对于高频访问且不常变更的数据(如系统配置、菜单树),应利用系统内置的 Redis 缓存机制(注解@Cacheable),减少数据库压力。
6. 生产环境部署的安全加固
- 实践建议:JeecgBoot 默认集成了非常多功能(如 Druid 监控、Swagger 接口文档),这些在开发时很有用,但在生产环境是安全隐患。
- 具体操作:
- 修改默认路径:在
application.yml中修改后台管理路径,默认通常是/jeecg-boot或 `/
- 修改默认路径:在
引用
- GitHub 仓库: https://github.com/jeecgboot/JeecgBoot
- DeepWiki: https://deepwiki.com/jeecgboot/JeecgBoot
注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。
站内链接
- 分类: 后端 / 开源生态
- 标签: JeecgBoot / 低代码 / 代码生成 / Spring Boot / Vue3 / 企业级开发 / AI应用平台 / Java
- 场景: 全栈开发 / AI/ML项目 / RAG应用
相关文章
- JeecgBoot:集成AI低代码与代码生成器的企业级开发平台
- 🚀 Halo:强大开源建站神器!GitHub 趋势榜首选 ⭐
- ⚡️若依Vue3硬核升级!企业级快速开发平台,效率翻倍神器!
- 🚀Emissary:超快开源Java消息库!颠覆性能极限?
- 🚀 Vue3爆款后台模板!pure-admin:开箱即用,颜值与性能双巅峰! 这篇文章由 AI Stack 自动生成,包含多次大模型调用,提供深度的结构化分析。