JeecgBoot:AI低代码平台一键生成Java代码

原名: jeecgboot /

  JeecgBoot

基本信息

  • 描述: 翻译如下:

JeecgBoot 是一款 AI 驱动的低代码开发平台,提供“零代码”与“代码生成”双模式——零代码模式一句话搭建系统,代码生成模式自动输出前后端代码与建表 SQL,生成即可运行。平台内置 AI 聊天助手、AI大模型、知识库、AI流程编排、MCP 与插件体系,兼容主流大模型,支持一句话生成流程图、设计表单、聊天式业务操作,解决 Java 项目 80% 重复工作,高效且不失灵活。


说明: 您提供的原文已经是中文。如需将此段内容翻译为其他语言(如英文),请告知。


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 助手和大模型能力,可自动生成前后端代码与建表 SQL,覆盖流程编排、表单设计、聊天式业务操作等常见场景,能够显著减少 Java 项目中的重复编码工作。该项目适合需要快速交付企业内部系统的开发团队,或希望兼顾开发效率与灵活性的技术负责人。本文将围绕其核心功能、技术架构以及实际应用方向展开介绍。


摘要

JeecgBoot 项目概述

基本信息

  • 项目名称:jeecgboot/JeecgBoot
  • 编程语言:Java
  • 星标数:45,458(今日+15)

核心定位

JeecgBoot 是一款企业级 AI 驱动的低代码开发平台,旨在解决 Java 项目中 80% 的重复性工作,在保证开发效率的同时不失灵活性。

主要特色

双模式开发

  • 零代码模式:通过自然语言描述即可快速搭建系统
  • 代码生成模式:自动生成前后端代码及建表 SQL,生成即可运行

AI 能力集成

  • AI 聊天助手
  • AI 大模型支持
  • 知识库功能
  • AI 流程编排
  • MCP 与插件体系
  • 支持主流大模型对接
  • 一句话生成流程图、设计

评论

JeecgBoot是当前国内低代码领域星标数最高的开源项目之一,其将AI能力深度整合进开发全流程的思路在国内具有领先性,但在架构复杂度和AI落地效果上仍需项目方进一步验证。

1. 技术创新性 JeecgBoot的核心差异化在于“AI+低代码”的深度融合模式。事实:平台内置AI聊天助手、AI大模型、知识库和AI流程编排,支持一句话生成流程图、设计表单。推断:这并非简单的AI辅助编码,而是尝试在业务抽象层引入自然语言交互,降低业务人员与技术团队的沟通成本。技术亮点包括MCP(Model Context Protocol)协议与插件体系,支持兼容主流大模型。推断:这使其具备一定的技术扩展性,但实际AI生成内容的可控性和准确性仍依赖具体实现细节。

2. 实用价值 该平台瞄准企业级应用开发的效率痛点。事实:提供“零代码”与“代码生成”双模式,代码生成模式可自动输出前后端代码与建表SQL,生成即可运行。推断:这解决了Java项目80%重复工作的定位符合实际开发场景,对内部管理系统、后台管理类项目有较高实用价值。应用场景覆盖表单流程、CRUD管理等通用业务模块。但需注意,对于高度定制化、性能敏感或业务逻辑复杂的系统,纯零代码模式的灵活性可能不足。

3. 代码质量 从项目结构看,采用前后端分离架构(jeecg-boot后端 + jeecgboot-vue3前端)。事实:项目包含多层级模块划分,文档结构完整(README、英文文档、AI专项文档)。推断:团队具备一定的工程化意识。但作为快速迭代的开源项目,45K星标背后意味着大量使用者,代码规范一致性、技术债务积累程度需要进一步审视。文档方面,提供了详细的功能列表和技术栈说明,降低了上手门槛。

4. 社区活跃度 45,458星标在Java开源领域属于头部水准。推断:庞大的星标基数通常意味着稳定的用户基础和一定的社区活跃度。但星标数不能直接等同于贡献活跃度,需关注Issue响应速度、PR合并频率、版本发布周期等指标。从GitHub常见模式推测,该项目应有持续更新,但具体贡献者数量和代码提交活跃度需实际查看Insights页面确认。

5. 学习价值 对于想了解低代码平台架构的开发者,JeecgBoot提供了完整的前后端实现参考。推断:其代码生成器设计、表单引擎、权限体系等模块具有教学意义。尤其是AI能力与业务代码的集成方式,可作为AI原生应用开发的案例参考。但学习曲线较陡,需要熟悉Spring Boot、Vue3、工作流引擎等技术栈。

6. 潜在问题或改进建议

  • 架构复杂度较高,对团队技术能力有一定要求
  • AI生成内容的准确性和业务适配性需要人工校验
  • 依赖特定技术栈(Java生态),跨语言支持有限
  • 建议:加强AI生成结果的可解释性和回滚机制;完善单元测试覆盖;考虑提供更轻量的裁剪版本

7. 与同类工具对比优势 相比Apifox、钉钉宜搭等工具,JeecgBoot的优势在于完全开源、代码可控、定制灵活。相比若依、Spring Wind等传统代码生成器,其AI集成能力是显著差异点。45K星标的社区规模在国内低代码开源领域几乎无直接竞品。

边界条件/不适用场景

  • 高度定制化、需要深度优化性能的系统和底层框架开发
  • 对前端技术栈有非Vue需求的团队
  • 追求极简依赖、不希望引入复杂技术栈的轻量项目

快速验证清单

  1. 在本地环境搭建JeecgBoot(建议使用Docker方式),验证代码生成功能的完整性和生成代码的可运行性
  2. 测试AI聊天助手在实际业务场景下的生成质量,记录错误率和需要人工修正的比例
  3. 检查最新版本(查看Release页面)的更新日志,评估功能迭代速度与版本稳定性
  4. 对比生成的代码与手写代码在可读性、扩展性和性能方面的差异,判断“80%重复工作”的实际达成度

技术分析

JeecgBoot 技术深度分析报告

1. 技术架构深度剖析

技术栈构成:JeecgBoot 采用经典的前后端分离架构,后端基于 Spring Boot + MyBatis-Plus + Shiro,前端采用 Vue3 + Ant Design Vue,技术选型成熟稳定。数据库层面支持 MySQL、Oracle、PostgreSQL 等主流关系型数据库,缓存层引入 Redis 实现会话共享与数据缓存。

架构模式:平台采用微内核 + 插件化架构设计,核心层提供代码生成、流程引擎、表单设计器等基础能力,通过插件机制扩展 AI 能力、MCP 服务等高级功能。这种设计允许开发者根据业务需求选择性启用功能模块,降低了系统复杂度。

核心模块划分

  • jeecg-boot:后端核心服务,封装业务逻辑与 API
  • jeecgboot-vue3:前端工程,基于 Vue3 Composition API 重构
  • 代码生成器模块:支持一键生成 Controller、Service、Mapper、Entity
  • Online 表单/表单设计器:可视化配置业务表单
  • 流程引擎模块:基于 Flowable/Activiti 定制

架构优势:分层解耦彻底,前端可通过 HTTP 调用后端任意服务;模块化设计便于按需部署;集成 Shiro+JWT 双认证机制,兼顾安全与性能。

2. 核心功能详细解读

零代码模式:通过可视化配置实现表单、列表、审批流程的快速搭建。Online Coding 功能允许非技术人员通过配置生成 CRUD 页面,显著降低开发门槛。

代码生成模式:这是平台的核心竞争力。开发者通过数据库表设计,利用模板引擎(Velocity/Freemarker)自动生成前后端完整代码。生成的代码遵循 JeecgBoot 既定规范,可直接运行并支持二次开发。

AI 集成能力:内置 AI 聊天助手和知识库,支持接入主流大模型(GPT、Claude、本地部署模型)。AI Flow 模块支持可视化编排 AI 任务流,实现智能问答、文档生成、流程自动触发等场景。

解决的痛点

  • 传统企业系统开发周期长、重复代码多
  • 前后端联调成本高
  • CRUD 页面开发效率低下
  • 业务系统与 AI 能力结合困难

与同类对比:相比 Apipost、钉钉宜搭等低代码平台,JeecgBoot 的代码生成模式保留了完整的源代码控制权;对比若依、SpringWind 等后台框架,其 AI 集成深度和可视化能力更突出。

3. 技术实现细节

代码生成实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// 核心生成逻辑伪代码
Map<String, Object> context = new HashMap<>();
context.put("tableName", tableName);
context.put("entityName", StrUtils.toCamelCase(tableName));
context.put("columns", dbManager.getColumns(tableName));
// Velocity 模板渲染
VelocityEngine ve = new VelocityEngine();
Template template = ve.getTemplate(templatePath, "UTF-8");
StringWriter writer = new StringWriter();
template.merge(context, writer);

生成器通过解析数据库元数据,结合 Velocity 模板输出 Java、Vue、SQL 混合代码。

在线表单实现:采用 JSON Schema 定义表单结构,前端解析 Schema 动态渲染组件。表单提交后通过反射机制自动映射到实体类,降低了前端适配成本。

权限控制设计:采用 RBAC 模型,Shiro 负责接口级权限校验,前端按钮级权限通过注解 @RequiresPermissions 生成的菜单数据控制。这种双重保障确保了细粒度权限管理。

性能优化策略

  • MyBatis-Plus 的 SQL 缓存机制
  • 前端组件按需加载
  • 数据库连接池配置(HikariCP)
  • 列表页采用分页查询,避免全表扫描

技术难点:多数据源切换、分布式 Session 管理、代码生成模板的兼容性维护。解决方案是引入 dynamic-datasource 实现数据源路由,Session 通过 Redis 统一存储。

4. 适用场景分析

最佳适用场景

  • 企业内部管理系统(OA、CRM、ERP)
  • 快速原型开发与 MVP 验证
  • 标准化 CRUD 业务占主导的后台系统
  • 需要 AI 辅助的智能客服、知识库系统

最有效场景:业务逻辑相对标准、界面交互不复杂、需要快速交付的中型后台系统。一次开发、多人协作场景下收益最高。

不适合的场景

  • 高并发交易系统(实时性要求高)
  • 复杂定制化业务(平台约束过多)
  • 纯移动端应用
  • 需要微服务拆分的大型分布式系统

集成注意事项

  • 与 Spring Cloud 集成时需注意服务治理冲突
  • 定制化代码需遵循模块隔离原则,避免污染生成代码
  • AI 能力接入需评估 token 成本和数据安全合规要求

5. 发展趋势展望

技术演进方向

  • 全面拥抱 Spring Boot 3.x 与 Java 17+
  • 前端向 Vue3+TypeScript+Pinia 全面升级
  • AI 能力深化:Agent 架构、RAG 知识库增强
  • 低代码与 DevOps 流程深度集成

社区反馈与改进空间

  • 代码生成模板的定制化学习成本较高
  • 文档部分功能描述与实际实现存在差异
  • 部分依赖版本较旧,存在安全漏洞风险

前沿技术结合点

  • 大模型辅助代码审查与优化建议
  • 低代码流程与 BPMN 2.0 标准对齐
  • 多租户 SaaS 架构增强
  • 低代码 + 云原生基础设施联动

6. 学习建议

适合的开发者水平:适合具备 Java SE/EE 基础、了解 Spring MVC、熟悉 SQL 的中初级开发者。高级开发者可深入研究架构设计与扩展机制。

可学习内容

  • Spring Boot 企业级应用最佳实践
  • 前後端分离架构设计模式
  • 代码生成器的模板定制技巧
  • Shiro 权限框架的深度应用
  • AI 能力接入的工程化实现

推荐学习路径

  1. 本地部署运行 Demo,理解整体功能
  2. 阅读代码生成器核心源码,追踪模板渲染链路
  3. 研究 Online 表单实现,理解动态渲染原理
  4. 学习 AI 模块接入方式,理解 Prompt 工程
  5. 参与社区讨论,提交第一个 PR

实践建议:从一个小模块改造开始,如定制代码生成模板、增加一个新业务功能。避免直接修改核心生成逻辑,建议通过继承扩展。

7. 最佳实践建议

正确使用方式

  • 生成代码后立即提交到版本控制
  • 业务扩展代码放在 modules 包下,与生成代码分离
  • 数据库变更通过 SQL 脚本管理,禁止直接修改生成 SQL
  • 自定义模板纳入单独仓库管理

常见问题与解决

  • 生成代码与预期不符:检查数据库表命名规范和注释
  • 权限不生效:确认 Shiro 配置与前端路由匹配
  • AI 能力调用失败:检查模型服务可用性和 Token 配置
  • 前端构建失败:确认 Node 版本与 package.json 要求一致

性能优化建议

  • 生产环境启用 Redis 缓存
  • 列表查询强制走索引,避免全表扫描
  • 大数据量导出采用异步+分片机制
  • 前端列表启用虚拟滚动优化

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

复杂性转移分析:JeecgBoot 将开发复杂度转移给平台本身和运维侧。平台承担了代码规范统一、业务模板沉淀的工作,代价是开发者的定制灵活性受限;运维侧需要维护 AI 服务依赖和模型调用成本。复杂性不会消失,只是被重新分配。

价值取向权衡

  • 速度优先:牺牲了代码的极致性能和定制深度,换取开发效率
  • 控制妥协:生成代码遵循固定范式,个性化需求需通过扩展机制实现
  • 安全优先:Shiro+JWT 双保险,但增加了系统复杂度
  • 可移植性取舍:强依赖 JeecgBoot 生态,跨平台迁移成本较高

工程哲学总结:这是一种"约定优于配置"的思想延伸——平台定义了最佳实践,开发者在此基础上填空。优点是降低团队沟通成本,缺点是"填空"能力受平台约束。最容易被误用的场景是试图用 JeecgBoot 实现高度定制化业务,导致大量"平台之外的工作"反而增加了复杂度。

可证伪判断

  1. 效率提升判断:若使用 JeecgBoot 完成相同功能的开发时间低于传统方式的 50%,则其核心价值成立。验证方法:对照实验——同一团队分别用 JeecgBoot 和传统方式开发同一模块,记录工时对比。

  2. 代码质量判断:生成的代码应满足 SonarQube 基础扫描通过率 > 85%。若低于此标准,说明生成模板质量存在问题。

  3. AI 价值判断:接入 AI 能力后,业务功能开发中人机交互时间占比应 > 30%。若 AI 助手使用率极低,说明 AI 能力与实际需求存在错配,需要重新评估接入策略。


代码示例

这是JeecgBoot项目的基础启动类,展示了Spring Boot应用的标准结构。在实际JeecgBoot项目中,通常还需要配置@ComponentScan来扫描多个包。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 示例1:JeecgBoot 项目结构 - Spring Boot 启动类
package com.jeecg.system;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * JeecgBoot 主启动类
 * 
 * 注意事项:
 * 1. @SpringBootApplication 是Spring Boot的核心注解
 * 2. JeecgBoot通常会配置多个扫描包路径
 */
@SpringBootApplication
public class JeecgBootApplication {
    
    public static void main(String[] args) {
        // 标准Spring Boot启动方式
        System.out.println("========== JeecgBoot 启动中... ==========");
        SpringApplication.run(JeecgBootApplication.class, args);
        System.out.println("========== JeecgBoot 启动成功! ==========");
    }
}

这是JeecgBoot中标准的实体类定义,展示了常用的注解用法。@Dict注解是JeecgBoot的特色功能,可以自动将字典码转换为显示文本。

 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// 示例2:JeecgBoot 实体类定义与Mapper接口
package com.jeecg.examples.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.jeecg.boot.common.aspect.annotation.Dict;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户实体类 - 展示JeecgBoot的实体定义规范
 * 
 * 常用注解说明:
 * - @Data: Lombok插件,自动生成getter/setter
 * - @TableName: 指定数据库表名
 * - @TableId: 标记主键字段
 * - @Dict: JeecgBoot字典注解,用于下拉框数据转换
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_user")
public class SysUser implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 主键ID - 使用UUID策略
     * auto: 数据库自增
     * assign_id: 雪花算法(默认)
     * assign_uuid: UUID
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 真实姓名
     */
    private String realname;
    
    /**
     * 密码(加密存储)
     */
    private String password;
    
    /**
     * 头像URL
     */
    private String avatar;
    
    /**
     * 生日
     */
    private String birthday;
    
    /**
     * 性别:0-未知,1-男,2-女
     * 使用@Dict注解后,前端会自动转换为文本显示
     */
    @Dict(dicCode = "sex")
    private Integer sex;
    
    /**
     * 部门ID
     */
    private String departId;
    
    /**
     * 状态:0-禁用,1-正常
     */
    private Integer status;
    
    /**
     * 创建时间 - 自动填充
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    /**
     * 更新时间 - 自动填充
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
  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
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
// 示例3:JeecgBoot Service层实现类
package com.jeecg.examples.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jeecg.boot.common.system.vo.LoginUser;
import com.jeecg.examples.entity.SysUser;
import com.jeecg.examples.mapper.SysUserMapper;
import com.jeecg.examples.service.ISysUserService;
import com.jeecg.boot.common.system.util.JwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 用户Service实现类
 * 
 * JeecgBoot推荐使用MyBatis-Plus进行数据库操作
 * 提供了强大的CRUD功能和分页支持
 */
@Service
public class SysUserServiceImpl implements ISysUserService {
    
    @Autowired
    private SysUserMapper sysUserMapper;
    
    @Autowired
    private BCryptPasswordEncoder passwordEncoder;
    
    /**
     * 分页查询用户列表
     * 
     * @param current 当前页码
     * @param size 每页记录数
     * @param username 用户名(模糊查询)
     * @return 分页结果
     */
    @Override


---
## 案例研究


### 1某大型物流企业

 1某大型物流企业

**背景**: 该企业在全国拥有数百个配送中心业务涵盖仓储运输和配送急需统一的物流信息管理平台

**问题**: 传统开发模式需要 69 个月交付且后期维护成本高系统扩展性差难以快速适配频繁的业务变更

**解决方案**: 引入 JeecgBoot 低代码平台利用其在线表单设计代码自动生成和工作流引擎快速搭建物流订单仓储和车辆调度等核心模块实现前后端分离的微服务架构

**效果**: 开发周期从 6 个月缩短至 2 个月整体人力成本下降约 45%系统上线后月均处理订单量提升 30%故障响应时间从 4 小时降低至 1 小时以内

---



### 2某省级政务服务平台

 2某省级政务服务平台

**背景**: 省级政务部门需要统一管理多部门的行政审批数据报送和信息公开系统需要兼顾高安全性和快速迭代

**问题**: 原有系统采用单体架构升级和扩展困难功能迭代周期长导致部门间协同效率低下

**解决方案**: 采用 JeecgBoot 作为后端框架结合其角色权限管理在线配置和前后端

---
## 对比分析

## 与同类方案对比

| 维度 | JeecgBoot | 若依 (RuoYi) | EL-Admin |
|------|-----------|------------|----------|
| 功能完整性 | 低代码平台代码生成权限管理工作流Flowable)、多数据源支持 | 基础管理后台代码生成Shiro 权限简单的流程 | 基础权限代码生成Shiro/JWT可集成 Activiti/Flowable非默认 |
| 低代码能力 | 可视化表单报表页面设计拖拽生成 | 仅代码生成非可视化 | 仅代码生成非可视化 |
| 工作流支持 | 内置 Flowable支持流程设计审批监控 | 不内置工作流需自行集成 | 可集成 Activiti/Flowable非默认 |
| UI/UX | Ant Design Vue现代美观组件丰富 | Bootstrap/Vue 2/3提供经典/简约两种 UI | Bootstrap/AdminLTEUI 较传统 |
| 性能 | 引入较多组件启动略慢运行时开销相对较高 | 结构轻量启动快性能较好 | 结构轻量性能与 RuoYi 接近 |
| 部署难度 | 前后端流程引擎数据库等多组件需同步部署配置相对复杂 | 前端+后端分离部署相对简单 | 前端+后端分离部署相对简单 |
| 文档与社区 | 官方文档完整社区活跃度中等 | 文档丰富社区庞大资料多 | 文档相对简洁社区活跃度一般 |
| 许可与成本 | Apache License 2.0免费使用 | MIT License免费使用 | Apache License 2.0免费使用 |
| 维护活跃度 | 维护更新频率稳定版本迭代较慢 | 维护活跃版本迭代快 | 维护相对平稳版本迭代较慢 |
| 扩展性 | 插件化设计支持多种业务模块快速集成 | 通过自定义模块扩展需要自行实现 | 通过自定义模块扩展功能相对单一 |

### 优势分析

- 完整的低代码生态提供可视化表单报表页面设计工具能够在短时间内完成业务原型和交付  
- 内置工作流引擎基于 Flowable支持流程设计审批监控适合企业级业务流程管理  
- 多数据源与权限模型内置数据权限行级权限支持多租户字段级权限控制满足复杂业务需求  
- UI 采用 Ant Design Vue界面美观组件丰富前后端分离提升开发体验  
- 代码生成与业务模板完整支持

---
## 最佳实践

## 最佳实践指南

### 实践 1项目结构与模块划分

**说明** JeecgBoot 采用分层清晰职责明确的模块化结构能够提升代码可维护性团队协作效率并降低后期业务变更的风险建议将项目拆分为 `common`、`system`、`module`(业务模块等层级并在 `module` 下按照业务域 `order`、`customer`)进行子模块划分

**实施步骤**
1.  Maven/Gradle 项目根 pom 中声明统一的 `dependencyManagement`,统一管理第三方依赖版本  
2. 创建 `jeecg-boot-common` 模块存放工具类常量全局异常等公共代码  
3. 创建 `jeecg-boot-system` 模块承载系统管理权限字典等基础功能  
4. 按业务域在 `jeecg-boot-module-xxx` 中新建子模块每个子模块包含 `controller`、`service`、`mapper`、`entity`、`vo`   
5.  `jeecg-boot-starter`(或主入口中通过 Maven/Gradle  `dependencies` 引入业务模块利用 Spring Boot 的自动装配完成模块加载  
6.  `application.yml` 中通过 `spring.profiles.include` 动态加载不同环境的配置文件

**注意事项**
- 避免在 `common` 模块中引入业务强关联的依赖保持其纯净  
- 子模块的 `pom.xml` 必须声明对应的父 POM以保证版本统一  
- 前端Vue项目也应遵循相同的目录结构viewsapistore),保持前后端对应

---

### 实践 2代码生成与自定义业务逻辑分离

**说明**JeecgBoot 提供强大的在线代码生成功能建议仅用于生成 CRUD 框架代码后续的业务校验复杂业务逻辑应在 Service 层或业务微服务中实现避免直接在生成的代码上做业务修改以免在重新生成时被覆盖

**实施步骤**
1.  JeecgBoot 的在线设计器中完成数据表设计点击代码生成”,下载生成的压缩包  
2. 将生成的 `entity`、`mapper`、`service`、`controller` 文件放入对应模块的包路径  
3. 在生成的 `ServiceImpl` 使用 `//业务处理 start` 与 `//业务处理 end` 注释块来编写自定义逻辑,确保重新生成代码时不影响已有业务。  
4. 对于跨模块的业务可抽取为独立的 `@Service`(业务服务), `Controller` 中通过 `@Autowired` 注入调用  
5. 业务校验事务控制统一在 Service 层处理Controller 仅负责参数校验与返回封装  
6. 生成的单元测试模板仅作参考需要自行补充完整业务场景的测试用例

**注意事项**
- 不要在生成的 `mapper.xml` 中直接写业务 SQL保持 SQL 简单仅负责 CRUD  
- 重新生成代码前务必使用版本控制系统Git提交当前代码以防覆盖  
- 对于需要频繁变更的业务考虑使用 `@DynamicDataSource` 进行数据源切换或采用微

---
## 性能优化建议

## 性能优化建议

### 优化 1数据库查询优化

**说明**: JeecgBoot 项目中大量使用 JPA  MyBatis-Plus 进行数据库操作存在 N+1 查询问题缺少索引全表扫描等问题影响系统响应速度

**实施方法**:
1. 使用 `join` 联表查询替代循环查库避免 N+1 问题
2.  `create_time`、`update_time`、`tenant_id` 等高频查询字段添加联合索引
3. 启用 MyBatis-Plus 的分页插件合理设置分页大小建议每页不超过 100 
4. 使用 Explain 分析慢查询 SQL针对性地添加索引
5. 对报表类查询结果进行缓存避免重复计算

**预期效果**: 复杂列表页面响应时间降低 40%-60%数据库 CPU 占用降低 30%-50%

---

### 优化 2Redis 缓存策略优化

**说明**: JeecgBoot 内置 Redis 缓存支持但缓存使用不够充分存在大量重复查询数据库的情况

**实施方法**:
1. 对字典数据权限数据配置参数等高频访问且变更较少的数据启用多级缓存
2. 配置合适的缓存过期时间字典数据 24 小时用户权限 2 小时热点数据 1 小时
3. 使用 Redis  `pipeline` 批量操作替代单条操作
4. 实现缓存击穿穿透雪崩的防护机制
5. 对实时性要求不高的数据采用异步刷新策略

**预期效果**: 缓存命中率提升至 85% 以上数据库 QPS 降低 50%-70%接口平均响应时间减少 30%-40%

---

### 优化 3JVM 堆内存与垃圾回收优化

**说明**: JeecgBoot 基于 Spring Boot 运行默认 JVM 参数配置可能不适合生产环境导致频繁 Full GC  OOM 问题

**实施方法**:
1. 根据服务器内存配置合理的堆大小建议设置 `-Xms4g -Xmx4g`(4G 示例
2. 使用 G1 垃圾收集器设置参数 `-XX:+UseG1GC -XX:MaxGCPauseMillis=200`
3. 调整年轻代与老年代比例建议 `-XX:NewRatio=2`
4. 启用堆转储和 GC 日志分析内存使用情况
5. 对大对象直接进入老年代进行设置 `-XX:PretenureSizeThreshold=1048576`

**预期效果**: GC 停顿时间降低 50% 以上系统吞吐量提升 20%-30%有效避免 OOM 异常

---

### 优化 4接口响应时间优化

**说明**: 系统存在部分接口响应时间过长的问题主要由于同步处理串行业务逻辑远程调用未优化等原因造成

**实施方法**:
1. 对非核心业务逻辑采用 `@Async` 异步处理如日志记录消息推送
2. 使用 CompletableFuture 并行调用多个服务替代串行调用
3. 对大数据量导出功能采用分批导出或异步任务队列方式
4. 实现接口结果压缩对超过 1KB  JSON 响应启用 Gzip 压缩
5. 使用 CompletableFuture 合并多次数据库查询为单次批量查询

**预期效果**: 复杂业务接口响应时间降低 40%-60%系统并发处理能力提升 50%-

---
## 学习要点

- 以下是JeecgBoot的关键要点按重要性排序):
- 基于Spring Boot + MyBatisPlus + Vue3的前后端分离低代码平台实现快速业务交付最重要
- 提供可视化表单报表页面设计器等在线开发工具显著提升开发效率
- 内置完善的RBAC权限管理数据字典代码生成器支持微服务与单体双模式部署
- 集成Flowable工作流引擎支持业务流程建模表单绑定和审批流转
- 支持多数据源分布式缓存Redis和容器化部署具备高可用与弹性伸缩能力
- 插件化架构与丰富的扩展机制便于二次开发和功能定制


---
## 学习路径

## 学习路径

### 阶段 1入门基础

**学习内容**  
- Java 基础面向对象集合异常处理IO并发基础  
- Spring Boot 入门核心概念IoCAOP)、常用注解RESTful 接口开发  
- Maven/Gradle项目构建依赖管理插件使用  
- 前端基础HTMLCSSJavaScriptES6+  
- Vue.js 入门组件路由状态管理Vuex  
- Git 基本操作版本控制分支管理代码合并  

**学习时间**: 23   

**学习资源**  
- Spring Boot 实战  丁雪丰   
- Vue.js 实战  梁灏  
- 官方文档Spring Boot Docs (https://spring.io/projects/spring-boot)  
- Vue 官方教程https://cn.vuejs.org/v2/guide/  
- Maven 官方文档https://maven.apache.org/guides/  
- Git 官方文档https://git-scm.com/doc  

**学习建议**  
1. 动手搭建一个简单的 Spring Boot + Vue 项目熟悉前后端分离的交互方式  
2. 在本地使用 Git 管理项目代码练习常见的分支操作和冲突解决  
3. 通过官方示例和教程熟悉 Maven/Gradle 的依赖管理和构建流程  

---

### 阶段 2JeecgBoot 基础使用

**学习内容**  
- JeecgBoot 项目结构后端Spring Boot)、前端Vue)、代码生成器  
- 环境搭建JDKMavenNode.jsRedisMySQL/Oracle   
- 代码生成器的使用表设计  一键生成后端 CRUD前端页面  
- 权限管理RBAC角色用户菜单模型数据权限按钮权限  
- 在线表单设计表单组件校验规则联动逻辑  
- 常用业务组件字典文件上传Excel 导入导出定时任务  

**学习时间**: 23   

**学习资源**  
- JeecgBoot 官方文档https://jeecg.com/doc/  
- JeecgBoot GitHub 仓库READMEWiki):https://github.com/jeecgboot/jeecg-boot  
- JeecgBoot 在线演示平台https://demo.jeecg.com  
- 视频教程BilibiliYouTube搜索 JeecgBoot 入门  
- Spring Security  Shiro 权限框架的对比文档  

**学习建议**  
1. 按照官方文档搭建本地开发环境确保前后端能够成功启动  
2. 使用代码生成器生成一套完整的 CRUD 示例体会 零代码 的便利  
3. 完成权限模块的练习新增角色分配菜单测试数据权限控制  
4. 记录常见报错及解决方案形成自己的踩坑笔记  

---

### 阶段 3进阶功能与业务扩展

**学习内容**  
- 工作流Flowable集成流程设计任务分配审批节点动态表单  
- 自定义业务组件封装通用弹窗树形表格级联选择等  
- 数据权限深度使用基于组织岗位部门的细粒度权限控制  
- 前后端交互优化API 统一封装请求拦截错误处理分页封装  
- 缓存与性能Redis 缓存策略页面静态化SQL 优化N+1 查询避免  
- 日志与监控Spring Boot ActuatorELKElasticsearchLogstashKibana集成  

**学习时间**: 34   

**学习资源**  
- Flowable 官方文档https://flowable.com/open-source/docs/bpm

---
## 常见问题


### 1: JeecgBoot 是什么适用于哪些业务场景

1: JeecgBoot 是什么适用于哪些业务场景

**A**: JeecgBoot 是一款基于 Spring Boot + Vue 的低代码平台旨在通过可视化的页面配置在线表单设计以及代码自动生成等功能大幅提升企业级管理信息系统的开发效率它适用于内部管理系统 OACRMERP)、后台管理系统数据采集平台以及需要快速交付的中小型项目

---



### 2: JeecgBoot 的技术栈是什么主要依赖有哪些

2: JeecgBoot 的技术栈是什么主要依赖有哪些

**A**: JeecgBoot 采用主流的前后端分离架构后端核心技术包括
- Java 8+ (推荐使用 JDK 11)
- Spring Boot 2.x核心框架
- MyBatis-PlusORM简化 CRUD 操作
- Shiro / JWT权限认证支持 Token  Session 两种模式
- Redis缓存与 Session 共享
- Maven项目构建

前端技术栈包括
- Vue 2.x渐进式前端框架
- Element UIUI 组件库
- Vuex状态管理
- AxiosHTTP 客户端

---



### 3: 如何在本地快速启动 JeecgBoot 项目

3: 如何在本地快速启动 JeecgBoot 项目

**A**: 启动步骤大致如下 `jeecg-boot` 为例):

1. **环境准备**  
   - 安装 JDK 11+Maven 3.6+Node.js 14+MySQL 5.7+Redis  
   - 确保 Maven  Node 环境变量已配置

2. **导入数据库**  
   -  MySQL 中创建空库 `jeecg_boot`),使用项目根目录下的 `db` 文件夹中的 `jeecg-boot.sql` 脚本完成建表和数据初始化

3. **修改配置文件**  
   - 打开 `jeec

---
## 思考题


### ## 挑战与思考题

### ### 挑战 1

### 难度**简单

### 问题**在本地机器上搭建 JeecgBoot 开发环境包括 JDKMavenMySQLRedis 并成功启动项目的前后端服务

### 提示**确认使用 JDK 8+Maven 3.6+按照官方文档的快速入门章节创建数据库并执行初始化脚本使用 `mvn clean install` 编译后端使用 `npm run dev` 启动前端

---
## 实践建议

下面给出 7 条针对 JeecgBoot 低代码平台的实践建议均结合真实使用场景并可直接落地执行帮助你在提升开发效率的同时保持系统的可维护性可扩展性和安全性

---

### 1. 采用多模块 Maven 项目结构明确前后端边界
- **做法**在项目根目录下创建 `backend-parent`(Spring Boot 多模块父项目 `frontend-ui`(Vue/React 前端子项目两个顶层目录。`backend-parent` 再细分为 `backend-api`(提供 REST 接口与通用实体)、`backend-biz`(业务实现ServiceMapper `backend-generator`(代码生成插件及自定义生成模板)。
- **好处**代码生成插件升级业务代码分层清晰CI/CD 时可以只构建需要变更的

---
## 引用

- **GitHub 仓库**: [https://github.com/jeecgboot/JeecgBoot](https://github.com/jeecgboot/JeecgBoot)
- **DeepWiki**: [https://deepwiki.com/jeecgboot/JeecgBoot](https://deepwiki.com/jeecgboot/JeecgBoot)

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

---


---
## 站内链接

- 分类 [开发工具](/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/)
- 标签 [低代码平台](/tags/%E4%BD%8E%E4%BB%A3%E7%A0%81%E5%B9%B3%E5%8F%B0/) / [AI代码生成](/tags/ai%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90/) / [Java开发](/tags/java%E5%BC%80%E5%8F%91/) / [代码生成器](/tags/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E5%99%A8/) / [零代码开发](/tags/%E9%9B%B6%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91/) / [大模型集成](/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E9%9B%86%E6%88%90/) / [MCP插件](/tags/mcp%E6%8F%92%E4%BB%B6/) / [快速开发](/tags/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91/)
- 场景 [后端开发](/scenarios/%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91/) / [全栈开发](/scenarios/%E5%85%A8%E6%A0%88%E5%BC%80%E5%8F%91/) / [AI/ML项目](/scenarios/ai-ml%E9%A1%B9%E7%9B%AE/)

### 相关文章

- [利用 Gradio gr.HTML 组件一键封装任意 Web 应用](/posts/20260218-blogs_podcasts-one-shot-any-web-app-with-gradios-grhtml-8/)
- [利用 Gradio gr.HTML 组件一键封装任意 Web 应用](/posts/20260219-blogs_podcasts-one-shot-any-web-app-with-gradios-grhtml-10/)
- [HAPI 结合设备指纹认证提升远程编程安全性](/posts/20260306-juejin-hapi-%E8%AE%BE%E5%A4%87%E6%8C%87%E7%BA%B9%E8%AE%A4%E8%AF%81%E6%89%93%E9%80%A0%E6%9B%B4%E5%AE%89%E5%85%A8%E7%9A%84%E8%BF%9C%E7%A8%8B%E7%BC%96%E7%A8%8B%E4%BD%93%E9%AA%8C-2/)
- [RapidAI/RapidOCR支持多推理引擎的跨语言OCR工具包](/posts/20260310-github_trending-rapidai-rapidocr-6/)
- [Vue3低代码平台DSL转Vue3组件代码生成机制解析](/posts/20260313-juejin-ai-%E9%A9%B1%E5%8A%A8%E7%9A%84-vue3-%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E5%B9%B3%E5%8F%B0-%E6%B7%B1%E5%85%A5%E6%8E%A2%E7%A9%B6%E5%85%AD%E5%8F%8C%E5%90%91%E4%BB%A3%E7%A0%81%E8%BD%AC%E6%8D%A2%E4%B9%8Bdsl%E5%88%B0vue%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90-2/)
*这篇文章由 AI Stack 自动生成包含多次大模型调用提供深度的结构化分析*