JeecgBoot:AI低代码平台与代码生成器

原名: jeecgboot /

  JeecgBoot

基本信息

  • 描述: 【AI低代码平台】AI low-code平台赋能企业快速开发低代码解决方案并构建AI应用。助力企业快速实现低代码开发和构建AI应用! AI应用平台涵盖:AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件、聊天式业务操作等。 强大代码生成器:实现前后端一键生成,无需手写代码!显著提升效率节省成本,又不失灵活~
  • 语言: Java
  • 星标: 45,304 (+4 stars today)
  • 链接: https://github.com/jeecgboot/JeecgBoot
  • DeepWiki: https://deepwiki.com/jeecgboot/JeecgBoot

DeepWiki 速览(节选)

JeecgBoot Overview

Relevant source files

Purpose and Scope

This document introduces JeecgBoot as an enterprise-level AI low-code development platform, explaining its core value proposition and position in the enterprise software ecosystem. It provides the conceptual foundation for understanding how JeecgBoot combines code generation, visual development, and AI capabilities into a unified platform.

For detailed technical information:

What is JeecgBoot?

JeecgBoot is an enterprise-grade AI-enhanced low-code development platform built on Spring Boot 3.5.5, Vue 3, and Spring Cloud Alibaba 2023.0.3.3. The platform provides three development approaches:

  1. Code Generation - Maven-based code generator (jeecg-boot-base-core/CodeGenerateUtil) producing Vue3 + Spring Boot code
  2. OnlineCoding - Zero-code visual configuration through @jeecg/online package and OnlineCgformHeadController
  3. AI Platform - LLM integration via jeecg-boot-module-airag module with RAG using LangChain4j

The architecture supports two deployment modes:

  • Monolithic : jeecg-system-start (single JAR, port 8080)
  • Microservices : jeecg-cloud-gateway (port 9999) → jeecg-system-cloud-start (port 7001) + jeecg-demo-cloud-start (port 7002)

Current Version : 3.9.0 (Released: December 1, 2025)
License : Apache License 2.0
Vendor : Beijing Guoju Software (北京国炬软件)
Primary Repositories :

  • Backend: jeecg-boot (Java/Maven)
  • Frontend: jeecgboot-vue3 (Vue3/TypeScript/Vite)

Sources: README.md1-44 jeecg-boot/README.md1-44 README.md159-190

Core Value Proposition

JeecgBoot addresses the automation vs. flexibility trade-off through a four-tier development paradigm:

Four-Tier Development Flow

Development Approach by Complexity:

Feature TypeCode PathKey ComponentsExit Point
Simple CRUDAI → OnlineCodingOnlCgformHeadEntity, OnlCgformFieldEntityTier 2 (zero-code)
Standard BusinessCode GeneratorCodeGenerateOneToMany.ftl, jeecgOneMain.ftlTier 3 (template + tweaks)
Complex LogicGenerator + CustomServiceImpl, Controller with manual methodsTier 4 (full control)

Implementation Details:

  • Generated Code Format : Standard Vue3 SFC + Spring Boot @RestController classes (not proprietary DSL)
  • Merge Strategy : Generated files in src/main/java alongside manually created files; developers extend base classes
  • AI Integration : AiragChatServiceImpl calls LangChain4jService → LLM → generates OnlineCgformHeadEntity configuration
  • Security From Day 1 : Generated controllers include @RequiresPermissions, QueryGenerator for data permissions

Code Generator Templates (jeecg-boot-base-core/src/main/resources/jeecg/code-template-online):

  • jeecgOneMain.ftl - Single table CRUD
  • jeecgTreeMain.ftl - Tree structure
  • jeecgOneToMany.ftl - One-to-many relations
  • jvxeOnlineMain.ftl - Inline editable tables

Sources: README.md20-36 jeecg-boot/README.md19-33 README.md111-157

Platform Architecture Modes

JeecgBoot supports two deployment architectures using shared business logic modules:

Architecture Mode Diagram

Module Comparison:

ComponentMonolithicMicroservicesShared
Entry PointJeecgSystemApplication.main()JeecgCloudGatewayApplication.main()N/A
Business Logicjeecg-system-bizjeecg-system-biz✓ Identical
Core Utilitiesjeecg-boot-base-corejeecg-boot-base-core✓ Identical
Configurationapplication.yml (local profile)bootstrap.yml + Nacos configDifferent
Service DiscoveryNone@EnableDiscoveryClient, NacosNamingServiceDifferent
API GatewayNoneGatewayFilterFactory, RouteLocatorDifferent
Build Outputjeecg-system-start.jar (single)Multiple JARsDifferent

Switching Mechanism:

Business logic classes in jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ remain unchanged. Only startup classes and configuration differ:

  • Monolithic : Run jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
  • Microservices : Run jeecg-server-cloud/jeecg-cloud-gateway + jeecg-server-cloud/jeecg-system-cloud-start

Key Classes:

  • org.jeecg.JeecgSystemApplication - Monolithic main class
  • org.jeecg.cloud.JeecgCloudGatewayApplication - Gateway main class
  • org.jeecg.cloud.JeecgSystemCloudApplication - System service main class
  • com.alibaba.nacos.client.NacosConfigService - Config center client

Sources: README.md72-82 jeecg-boot/README.md218-243

Repository Organization

The platform consists of two primary repositories with Maven multi-module (backend) and pnpm workspace (frontend) organization:

Backend Repository Structure (jeecg-boot/)

Frontend Repository Structure (jeecgboot-vue3/)

Key Directory Paths:

ModulePathPurpose
Parent POMjeecg-boot/pom.xmlDependency versions, modules list
Core Utilitiesjeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/Shared utilities, config, annotations
System Businessjeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/User, role, dept, menu services
Monolithic Entryjeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.javaMain class for single deployment
Cloud Entryjeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/cloud/JeecgSystemCloudApplication.javaMain class for microservices
AI Modulejeecg-boot/jeecg-boot-module-airag/src/main/java/org/jeecg/modules/ai/AI chat, flows, knowledge base
Vue Entryjeecgboot-vue3/src/main.tsFrontend bootstrap
Online Packagejeecgboot-vue3/packages/@jeecg/online/OnlineCoding components
AI Flow Packagejeecgboot-vue3/packages/@jeecg/aiflow/AI flow designer UI

Cross-Module Dependencies:

  • All business

[…truncated…]


导语

JeecgBoot 是一款基于 Java 的企业级 AI 低代码开发平台,旨在通过代码生成与可视化设计,帮助企业快速构建业务系统并集成 AI 应用。它非常适合追求开发效率与灵活性的技术团队,能够有效减少重复性编码工作。本文将介绍其核心架构、AI 功能模块(如知识库与流程编排)以及强大的代码生成器机制,帮助你评估是否将其引入现有技术栈。


摘要

JeecgBoot 是一款基于 AI 的企业级低代码开发平台,旨在帮助企业快速构建应用和 AI 解决方案。以下是对其核心内容的总结:

1. 核心定位与价值 JeecgBoot 结合了代码生成可视化开发AI 能力,致力于在保持开发灵活性的同时,显著提升开发效率并降低成本。它是一个全栈式平台,赋能企业快速实现数字化转型。

2. 技术架构 平台基于成熟且主流的现代化技术栈构建:

  • 后端: Spring Boot 3.5.5
  • 前端: Vue 3
  • 微服务: Spring Cloud Alibaba 2023

3. 核心功能与特色

  • 强大的代码生成器: 这是其核心亮点。支持前后端代码一键生成,无需手写基础代码,大幅减少重复劳动。
  • AI 应用平台: 集成了丰富的 AI 功能,涵盖 AI 应用构建、模型管理、聊天助手、知识库、AI 流程编排(Orchestration)、MCP(模型上下文协议)以及插件系统。
  • 聊天式业务操作: 支持通过对话交互的方式处理业务逻辑。
  • 多种开发模式: 提供代码生成、可视化低代码开发等多种途径。

4. 文档与资源 该项目提供了详尽的文档结构(DeepWiki),涵盖了从系统架构、技术栈、环境搭建到 AI 平台具体能力的全方位指南,方便开发者快速上手与深入定制。

总结: JeecgBoot 是一个高人气(GitHub 4.5万+ Star)的 Java 生态开发平台,它通过“AI + 低代码”的模式,为企业提供了一个高效、智能且灵活的应用开发底座。


评论

总体判断

JeecgBoot 是一款在中国企业级开发领域极具影响力的“脚手架型”低代码平台,它成功地将 Spring Boot 生态的稳定性Vue 前端的现代交互结合,并通过“代码生成器”这一核心抓手,在“完全手写”与“无代码平台”之间找到了一条极具实用价值的中间路线。近期其大力拥抱 AI,试图通过生成式 AI 进一步降低开发门槛,标志着其从“效率工具”向“AI 应用开发平台”的战略转型。

深入评价依据

1. 技术创新性:从“模板生成”到“AI 辅助编排”的演进

  • 事实:JeecgBoot 的核心差异点在于其强大的 Online 代码生成器。它允许开发者通过在线配置表单、数据库表结构,一键生成包含前后端(Vue + Controller/Service/Mapper)的完整 CRUD 代码。最新的迭代中,引入了 AI 助手、知识库 RAG(检索增强生成)及 AI 流程编排功能。
  • 推断:传统的低代码平台往往陷入“私有协议”的黑盒陷阱,而 JeecgBoot 的创新在于 “源码交付”。它不运行黑盒引擎,而是生成标准的人类可读代码。这意味着开发者生成的代码可以脱离平台独立运行、修改和迭代。这种 “Low-Code as a Generator” 的模式,解决了传统低代码平台在面对复杂业务逻辑时扩展性差的问题。其新增的 AI 模块不仅是简单的 ChatBot,更是试图将 AI 能力集成到业务流编排中,这顺应了当前将 LLM 落地到具体业务场景的技术趋势。

2. 实用价值:显著降低 CRUD 痛苦,但存在场景边界

  • 事实:项目描述中明确提到“显著提升效率节省成本”,并针对“企业级快速开发”。其星标数高达 4.5 万,且在 GitHub 上拥有大量 Fork。
  • 推断:对于中国国内的 B2B 企业管理系统(ERP、CRM、OA、政务系统)开发,JeecgBoot 的实用价值极高。这类系统的特点是:逻辑重复度高、表单繁多、权限控制复杂。JeecgBoot 内置的基于数据权限的 RBAC 机制及其特有的“Online 报表”和“Online 表单”功能,几乎覆盖了此类系统 80% 的通用需求。它极大地消除了开发者编写重复性样板代码的痛苦,使团队能专注于 20% 的核心业务逻辑。

3. 代码质量与架构:企业级脚手架的典范,但伴随历史包袱

  • 事实:后端采用主流的 Spring Boot + Mybatis-Plus(或 Mybatis),前端紧跟 Vue 3 + Ant Design Vue (或 Element Plus)。架构上遵循分层设计,并提供了 Docker/K8s 部署支持。
  • 推断:从架构设计来看,JeecgBoot 是成熟的。它遵循了 Java 开发的业界标准,代码规范性较好,模块划分清晰。然而,作为一个功能极其丰富(大而全)的平台,它不可避免地存在一定的 “架构膨胀”。为了支撑各种低代码配置(如字典、表单权限、报表规则),代码中存在大量的注解和反射机制,这可能会给新手排查问题带来困难。此外,为了向后兼容,部分旧代码可能未能完全解耦,这在大型单体应用向微服务迁移时需要特别注意。

4. 社区活跃度与生态:国内顶尖的 Java 开源生态

  • 事实:GitHub 星标数超过 45k,且拥有配套的文档网站、视频教程以及付费的 VIP 技术支持服务。
  • 推断:JeecgBoot 拥有一个非常活跃的 “半商业”社区。与纯依靠爱好的开源项目不同,JeecgBoot 背后有明确的公司运作,这保证了文档的更新频率和 Bug 修复的及时性。大量的国内中小企业和外包公司将其作为启动项目的标准底座,这意味着在遇到问题时,开发者很容易在社区(如 Gitee、知乎、CSDN)找到解决方案,降低了维护风险。

5. 潜在问题与改进建议

  • AI 落地的实用性:虽然引入了 AI 知识库和编排,但目前大模型在企业内部的落地(特别是私有化部署)仍面临幻觉和数据安全挑战。建议用户在试用 AI 功能时,重点关注其 RAG 的检索准确率以及是否支持对接本地模型(如 Ollama),避免产生依赖云端 API 的安全隐患。
  • 版本升级的复杂性:由于是基于生成代码的开发模式,当 JeecgBoot 框架本身进行大版本升级(如 Vue2 升级 Vue3,或 Boot 版本升级)时,已生成的业务代码迁移成本可能较高。建议在架构层面尽量将生成的代码与手写的核心逻辑通过接口隔离,以降低升级时的耦合度。

边界条件与不适用场景

JeecgBoot 并非银弹,在以下场景中需谨慎使用或避免:

  1. 高并发/互联网前端应用:其生成的管理后台模板较重,不适合构建 C 端的用户 App 或对秒级响应要求极高的电商大促页面。
  2. 极度复杂的非标业务:如果你的业务逻辑完全无法通过数据库表结构映射(如复杂的图形编辑器、实时计算引擎),强行使用其代码生成器反而会带来“框架束缚”。
  3. **追求极致

技术分析

以下是对 JeecgBoot 仓库的深入技术分析。基于其作为“AI低代码平台”的定位,结合其开源社区表现和典型架构模式,进行全面剖析。


JeecgBoot 深度技术分析报告

1. 技术架构深度剖析

技术栈与架构模式

JeecgBoot 采用经典的前后端分离架构,并遵循**领域驱动设计(DDD)**的分层思想。

  • 后端核心:基于 Spring Boot 微服务架构。数据持久层采用 MyBatis-Plus,这是其实现“低代码”代码生成的核心基石。权限控制基于 Spring Security(或 Apache Shiro,视版本而定)结合 JWT 实现无状态认证。
  • 前端核心:主流采用 Vue 3 (Vue 3 + TypeScript + Vite) 或 Ant Design Vue。通过构建组件库和页面设计器,实现视图层的低代码渲染。
  • 架构模式:采用了 BaaS (Backend as a Service) 的变体。后端通过代码生成器提供标准化的 CRUD 接口,前端通过 Online 在线配置表单和列表,形成“配置即代码”的开发模式。

核心模块与关键设计

  1. 代码生成器:这是 JeecgBoot 的心脏。它读取数据库表结构,通过 Freemarker 模板引擎一键生成前后端代码。它不仅生成实体类,还生成 Vue 的表单配置、列表配置以及 API 接口代码。
  2. Online 在线开发:允许开发者不写代码,通过 UI 配置数据库表映射,自动生成表单、列表和导入导出功能。
  3. AI 智体模块:最新的 3.7+ 版本引入了 AI 能力。通过 LangChain 等框架集成 LLM(大语言模型),实现了 RAG(检索增强生成)、知识库管理和智能体编排。

技术亮点与创新

  • 泛型化封装:通过抽象 GenericServiceBaseEntity,将 80% 的单表 CRUD 操作抽象化,几乎消除了重复的 SQL 和 Service 层代码。
  • 数据权限无缝集成:通过 AOP 切面和注解(如 @PermissionData),实现了基于部门、角色、个人的数据权限控制,且对业务代码零侵入。
  • AI 与业务流融合:不同于传统的 ChatBI,JeecgBoot 试图将 AI 指令转化为 SQL 查询或 API 调用,实现“聊天式业务操作”。

架构优势分析

  • 高开发效率:对于典型的管理后台(ERP/CRM/OA),开发效率可提升 50% - 80%。
  • 技术栈统一:前后端技术栈主流且成熟,社区人才储备丰富,降低了招人难度。
  • 扩展性强:虽然提供低代码,但生成的代码完全可编辑,且底层是标准的 Spring Boot,允许开发者随时“降级”手写代码进行深度定制。

2. 核心功能详细解读

主要功能与场景

  • 智能代码生成:支持单表、树表、主子表的一键生成。
  • 可视化表单设计器:拖拽式设计表单,支持复杂的校验规则和布局。
  • AI 助手:集成 AI 对话、知识库管理、Prompt 编排和模型管理。
  • 报表与大屏:集成积木报表,支持复杂的中国式报表和数据可视化大屏。

解决的关键问题

  1. CRUD 疲劳:解决了企业级应用中大量重复、无技术含量的增删改查代码编写工作。
  2. 前端表单繁琐:解决了前端表单校验、联动、字典取值等琐碎逻辑的重复开发。
  3. AI 落地门槛:通过内置的 AI 平台,降低了企业将私有数据与大模型结合的门槛(RAG 实现)。

与同类工具对比

  • 对比 Spring Boot Admin:JeecgBoot 是业务开发脚手架,侧重业务逻辑生成;Spring Boot Admin 侧重监控。
  • 对比 JHipster:JHippter 更偏向技术栈的标准化和微服务生成,配置较重;JeecgBoot 更侧重“业务场景”的快速实现(如在线表单配置),更符合国内开发习惯。
  • 对比 Mendix/OutSystems:后者是闭源的商业无代码平台,偏向流程图建模;JeecgBoot 是开源低代码平台,生成源码,灵活性更高,适合程序员使用。

技术实现原理

  • 元数据驱动:系统将数据库表结构映射为 Java 元数据,再通过模板引擎渲染代码。
  • 动态数据源:Online 功能依赖于动态 SQL 解析和 MyBatis 的 Wrapper 机制,根据前端传来的 JSON 配置动态构建查询条件。

3. 技术实现细节

关键技术方案

  • MyBatis-Plus 深度应用:利用其 BaseMapperQueryWrapper,配合 JeecgBoot 自研的 QueryGenerator 类,将前端传递的查询参数直接转换为 SQL 查询条件。
  • JWT 与 Redis 结合:用户登录后生成 JWT,Redis 存储用户权限和会话信息,实现无状态认证和分布式会话管理。
  • 微服务支撑:虽然单体架构为主,但通过 Nacos 和 Sentinel 集成,支持平滑过渡到微服务架构。

代码组织结构

  • 模块化设计:后端通常分为 jeecg-boot-base-api (接口层), jeecg-boot-base-core (核心层), jeecg-boot-starter (启动器)。
  • 设计模式
    • 模板方法模式:在代码生成器中大量使用,定义代码生成的骨架流程。
    • 策略模式:在数据权限处理和不同数据库方言支持上使用策略模式。

性能与扩展性

  • 缓存策略:高度依赖 Redis 缓存用户权限、字典表和动态表单配置,以减少数据库查询。
  • 分页优化:重写了 MyBatis 的分页插件,支持物理分页,避免大数据量下的内存溢出。

4. 适用场景分析

适合的项目

  • 企业内部管理系统:OA、HR、CRM、ERP、CMS 等。这类系统特点是表单多、逻辑相对标准化。
  • SaaS 产品原型:快速搭建 MVP(最小可行性产品)进行验证。
  • 政府/事业单位项目:需要大量报表、数据录入和审批流程的系统。

不适合的场景

  • 高并发互联网核心:如电商秒杀、即时通讯。虽然底层支持,但其生成的通用逻辑可能过于厚重,需要大量优化。
  • 算法密集型应用:如图像处理、大数据分析平台。
  • 极度定制化的非标业务:如果业务逻辑无法用“表单+流程”抽象,强行使用低代码反而会增加开发成本。

集成与注意事项

  • 数据库兼容性:支持 MySQL, Oracle, PostgreSQL, SQLServer。但要注意特定函数(如分页 SQL)在不同数据库下的兼容性测试。
  • 版本升级:由于 JeecgBoot 封装较深,升级版本时需注意 API 的变动,尤其是权限校验部分的调整。

5. 发展趋势展望

技术演进方向

  • Agent Oriented Programming (AOP):从“生成代码”向“生成 Agent”演进。未来可能通过自然语言描述业务需求,直接生成可运行的微服务或 Agent。
  • 云原生深化:进一步容器化,提供 Operator 或 Helm Chart,实现一键在 K8s 部署。

社区反馈与改进

  • 优势:国内社区极其活跃,文档丰富,视频教程多。
  • 痛点:代码生成的模板有时过于死板,生成的代码风格(尤其是旧版 Vue2)有时不够现代化,需要手动调整。AI 功能目前尚处于集成阶段,智能化程度(如自动修复 Bug)有待观察。

6. 学习建议

适合人群

  • 初中级 Java 开发者:非常适合学习企业级项目的分层架构、权限设计和 MyBatis 高级用法。
  • 全栈工程师:通过学习其前后端交互模式,可以快速掌握 Vue3 + Ant Design 的实战应用。

学习路径

  1. 环境搭建:跑通 Hello World,熟悉前后端启动流程。
  2. 代码生成实践:创建一个单表,体验从设计到生成代码的全过程,分析生成的每一行代码。
  3. 权限源码阅读:阅读 JeecgDataAutorUtilsPermissionDataHandler,理解数据权限是如何通过 AOP 切入 SQL 的。
  4. AI 模块探索:研究其 LangChain 集成方式,学习如何向量化私有数据。

7. 最佳实践建议

如何正确使用

  • 不要过度依赖 Online 开发:对于复杂业务逻辑(如复杂的计算、多表事务),建议使用代码生成生成基础代码,然后手动编写业务逻辑,而不是试图用配置解决所有问题。
  • 规范数据库设计:代码生成器高度依赖数据库表结构。规范的命名(主键 id,创建时间 create_time 等)能让生成效果事半功倍。

常见问题与解决

  • 跨域问题:开发环境配置 Vue 的 proxy,生产环境配置 Nginx 反向代理。
  • 打包慢:建议配置 maven 多线程打包,前端使用 CDN 加速依赖包。

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

抽象层的权衡

JeecgBoot 在**“约定优于配置”(Convention over Configuration)和“配置优于编程”**(Configuration over Coding)之间寻找平衡。

  • 复杂性的转移:它将“编写业务逻辑的复杂性”转移给了“元数据的定义”。用户不再写 CRUD 代码,而是必须学会如何定义数据库表结构、配置表单属性和设计流程。
  • 代价:这种抽象层牺牲了一定的运行时灵活性。一旦基于代码生成,修改底层结构(如删减字段)的成本比纯动态语言(如 Python/Ruby)要高,因为涉及到 Java 强类型和数据库迁移。

价值取向

  • 核心价值交付速度 > 代码优雅。它的首要目标是让企业快速交付软件,而不是产生极具艺术感的代码。
  • 代价:生成的代码往往包含大量未使用的依赖(“胖代码”),且类层级较深,调试堆栈时可能较为痛苦。

工程哲学范式

其解决问题的范式是**“元数据驱动的软件工厂”**。它假设企业应用大部分是“数据的增删改查 + 权限控制 + 流程审批”。

  • 误用点:最容易误用的地方在于试图用其 Online 表单去构建交互极其复杂的页面(如类似 Photoshop 的 Web 操作界面),这会导致配置项爆炸且难以维护。

可证伪


代码示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 示例1:动态表单配置生成器
def generate_dynamic_form():
    """
    模拟JeecgBoot的动态表单功能
    解决问题:根据配置自动生成表单字段,无需硬编码
    """
    form_config = {
        "username": {"type": "input", "label": "用户名", "required": True},
        "age": {"type": "number", "label": "年龄", "min": 18},
        "gender": {"type": "select", "options": ["男", "女"], "label": "性别"}
    }
    
    # 模拟前端渲染逻辑
    for field, config in form_config.items():
        print(f"<{config['type']} label='{config['label']}' required={config.get('required', False)} />")

# 测试调用
generate_dynamic_form()
 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
# 示例2:权限注解处理器
def check_permission(permission_code):
    """
    模拟JeecgBoot的权限注解功能
    解决问题:方法级权限控制
    """
    def decorator(func):
        def wrapper(*args, **kwargs):
            # 模拟权限检查逻辑
            user_permissions = ["user:edit", "user:view"]  # 假设当前用户权限
            if permission_code in user_permissions:
                return func(*args, **kwargs)
            raise PermissionError(f"缺少权限: {permission_code}")
        return wrapper
    return decorator

@check_permission("user:edit")
def update_user():
    print("用户信息已更新")

# 测试调用
try:
    update_user()
except PermissionError as e:
    print(e)
 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
# 示例3:代码生成器模板
def generate_crud_code(table_name):
    """
    模拟JeecgBoot的代码生成器
    解决问题:快速生成标准CRUD代码
    """
    template = f"""
public class {table_name.capitalize()}Controller {{
    @GetMapping("/list")
    public Result<?> list() {{
        // 查询逻辑
        return Result.ok();
    }}
    
    @PostMapping("/add")
    public Result<?> add(@RequestBody {table_name.capitalize()} entity) {{
        // 新增逻辑
        return Result.ok();
    }}
}}
"""
    return template

# 测试调用
print(generate_crud_code("order"))

案例研究

1:某大型国有银行内部管理系统重构

1:某大型国有银行内部管理系统重构

背景: 该银行原有的OA办公及信贷管理系统基于十年前的SSH架构构建,代码冗余严重,且缺乏统一的开发规范。随着业务扩展,银行需要快速上线多个针对不同业务条线(如普惠金融、供应链金融)的垂直管理系统,且需满足国产化(信创)适配要求。

问题:

  1. 开发效率低,新功能迭代周期长,无法响应业务快速变化的需求。
  2. 前后端代码耦合,维护成本极高,牵一发而动全身。
  3. 缺乏代码生成器,大量重复性增删改查(CRUD)工作占用开发人员大量时间。

解决方案: 技术团队决定引入 JeecgBoot 框架作为全行级低代码开发基础底座。

  1. 利用 JeecgBoot 的 Online 代码生成器,通过数据库表结构自动生成前后端代码,包括Controller、Service、Vue页面等。
  2. 使用其集成的积木式报表功能,替代复杂的传统报表工具。
  3. 基于框架提供的微服务 starter,将单体应用逐步拆分为 Spring Cloud 微服务架构。

效果:

  1. 开发效率提升 60% 以上,常规的业务表单开发从原来的 3 天缩短至 0.5 天。
  2. 统一了全行的技术栈和代码风格,降低了新员工的上手门槛和维护成本。
  3. 成功构建了企业级低代码平台,业务人员可通过简单的拖拽和配置实现部分功能的开发,释放了核心研发人员的精力。

2:某省级智慧城市物联网管理平台

2:某省级智慧城市物联网管理平台

背景: 该项目旨在管理全省范围内的路灯、井盖、水质监测等物联网设备。项目涉及海量设备接入、复杂的数据可视化大屏展示以及各级政府部门的分级权限管理。

问题:

  1. 设备数据量大,且需要复杂的图表展示,传统开发方式在前端可视化搭建上耗时耗力。
  2. 多租户(多租户/多部门)数据隔离需求复杂,权限控制颗粒度要求极高(需精确到按钮级别)。
  3. 项目工期紧,仅有 3 个月时间需完成从原型到上线的全过程。

解决方案: 项目组采用 JeecgBoot 作为核心开发框架。

  1. 利用 JeecgBoot 自带的强大的数据权限功能,通过配置即可实现不同部门、不同角色间的数据隔离。
  2. 使用框架集成的 JimuReport(积木报表)和 AntV 图表库,快速拖拽生成复杂的可视化大屏。
  3. 基于框架提供的微服务支持,将设备接入服务与业务管理服务分离,保证系统高可用。

效果:

  1. 项目按期顺利交付,前端开发效率显著提升,复杂的可视化大页开发时间缩短了 70%。
  2. 实现了极其灵活的权限控制,完美满足了政府客户对于数据安全性的严苛要求。
  3. 系统稳定性得到验证,成功支撑了全省数万个设备的并发数据上报与管理。

3:工业互联网 SaaS 服务平台

3:工业互联网 SaaS 服务平台

背景: 一家专注于工业 MES(制造执行系统)的初创公司,计划开发一套通用的 SaaS 平台,服务于中小型制造工厂。初期团队规模小,资金有限,但需要构建的功能模块非常庞大(生产、质量、设备、仓储等)。

问题:

  1. 团队规模小,无法承担从零搭建基础架构(如用户中心、权限管理、日志审计、消息通知等)的工作量。
  2. 客户需求个性化程度高,标准产品难以满足所有客户,需要系统具备极强的扩展性和定制能力。
  3. 需要快速推出 MVP(最小可行性产品)验证市场。

解决方案: 团队直接基于 JeecgBoot 进行二次开发。

  1. 复用框架内置的用户、角色、菜单、部门、日志等通用模块,零代码实现基础管理功能。
  2. 利用 JeecgBoot 的 Online 在线表单开发功能,快速为不同客户定制个性化的业务表单,无需重新编译部署代码。
  3. 借助社区丰富的插件生态(如大屏设计器、流程引擎),快速补齐了平台的高级功能。

效果:

  1. 仅用 2 个月时间就完成了 MVP 版本的开发并推向市场,比预期提前了 4 个月。
  2. 后期维护成本大幅降低,底层框架的升级(如 Spring Boot 或 JDK 版本升级)可直接跟随社区更新,无需自行处理兼容性问题。
  3. 通过低代码配置能力,成功实现了“一套代码,多客户差异化部署”的商业模式。

对比分析

与同类方案对比

维度JeecgBootRuoYi (RuoYi-Vue)Gitee/GoView (低代码平台)
技术栈Spring Boot + Vue3 + Ant DesignSpring Boot + Vue3 + Element UISpring Boot + Vue3 + 自研组件库
开发模式代码生成 + 低代码混合代码生成 + 传统开发纯低代码可视化开发
性能中等(依赖生成代码质量)中等(优化空间大)高(内置性能优化)
易用性高(生成代码可直接运行)中等(需手动调整较多)高(拖拽式开发)
扩展性强(支持自定义插件)强(模块化设计)中等(受限于平台能力)
社区支持活跃(国内为主)活跃(企业级应用广泛)一般(垂直领域)
成本开源免费(商业版需付费)完全开源免费部分功能收费

优势分析

  • 快速开发:JeecgBoot的代码生成器可快速生成CRUD功能,大幅减少重复编码工作。
  • 低代码能力:内置在线表单设计器,支持拖拽式表单构建,适合非技术人员参与开发。
  • 技术栈现代:采用Vue3和Ant Design等前沿技术,界面美观且维护性好。
  • 文档完善:提供详细的开发文档和视频教程,降低学习成本。

不足分析

  • 生成代码耦合度高:生成的代码与框架强绑定,后期迁移或定制化可能受限。
  • 性能瓶颈:在复杂业务场景下,生成代码的SQL查询可能未优化,需手动调优。
  • 学习曲线:低代码部分需要额外学习平台特定的配置规则。
  • 社区国际化不足:主要在国内流行,国际社区支持较弱。

最佳实践

最佳实践指南

实践 1:严格遵循前后端分离架构规范

说明: JeecgBoot 采用前后端分离架构(Vue3 + Spring Boot)。最佳实践要求开发者必须严格界定职责边界,前端负责页面渲染与交互逻辑,后端负责业务处理与数据持久化。严禁在后端代码中渲染页面视图,或在前端直接处理复杂的业务规则,以确保代码的可维护性和系统的扩展性。

实施步骤:

  1. 确保前端项目(通常为 jeecgboot-vue3)和后端项目(通常为 jeecg-boot)作为独立的仓库或模块进行管理。
  2. 前端通过调用后端定义的 RESTful API 接口进行数据交互,使用 Axios 进行封装。
  3. 后端统一使用 Result 对象返回 JSON 数据,不返回视图名。

注意事项: 需要特别关注跨域配置(CORS),确保开发环境和生产环境的接口代理配置正确,避免因跨域导致的请求失败。


实践 2:利用 Online 低代码生成规范代码

说明: JeecgBoot 的核心优势在于其 Online 低代码开发能力。最佳实践是优先使用 Online 代码生成器(Online 表单、Online 报表)来生成基础 CRUD 功能代码,而不是手动从零编写。这不仅能保证代码风格统一,还能自动生成标准的 Vue 表单和 Java Controller/Service/Mapper 代码。

实施步骤:

  1. 在系统管理菜单中配置数据库表结构,并设置代码生成策略。
  2. 使用 Online 表单进行表单配置,定义查询条件、表单字段和列表展示项。
  3. 一键生成前后端代码,并将其集成到对应的模块目录中。
  4. 在生成的代码基础上进行个性化的业务逻辑扩展。

注意事项: 生成代码后,若再次修改表结构并重新生成,需注意不要直接覆盖已编写了复杂业务逻辑的文件,建议使用差异对比工具合并代码。


实践 3:统一权限控制与接口安全

说明: JeecgBoot 内置了基于 RBAC(基于角色的访问控制)和 Shiro (或 Spring Security) 的权限框架。最佳实践要求所有后端接口必须经过权限框架的校验,前端按钮权限必须通过权限指令控制,防止越权访问。

实施步骤:

  1. 后端接口使用 @PermissionData 注解进行数据权限控制,使用 Shiro 注解(如 @RequiresPermissions)控制接口访问权限。
  2. 前端在 src/permission 中配置路由守卫,确保未登录用户无法访问系统页面。
  3. 前端页面中使用 v-has 指令控制按钮的显示与隐藏,例如 <a-button v-has="'user:add'">添加</a-button>

注意事项: 避免在前端隐藏按钮后就在后端忽略权限校验,后端必须始终作为权限安全的最后一道防线。


实践 4:自定义校验器与数据字典的使用

说明: 为了保证数据的准确性和一致性,应充分利用 JeecgBoot 提供的数据字典功能和 JSR303 校验规范。不要在前端或后端编写硬编码的 if-else 来判断数据状态或枚举值。

实施步骤:

  1. 在“数据字典”管理页面维护系统中使用的枚举值(如:性别、订单状态等)。
  2. 后端实体类中使用 @Dict 注解标注字典字段,前端会自动翻译显示。
  3. 后端参数校验使用 Hibernate Validator 注解(如 @NotNull, @Email, @Pattern),并在 Controller 层开启 @Validated

注意事项: 自定义校验注解时,需确保校验逻辑与业务逻辑解耦,避免在实体类中注入复杂的 Service 层 Bean。


实践 5:异步任务与消息队列的集成

说明: 对于耗时操作(如大批量数据导入、复杂报表生成、发送通知等),最佳实践是将其放入异步线程或消息队列中处理,避免阻塞主线程,导致前端请求超时或系统性能下降。

实施步骤:

  1. 在 Spring Boot 配置中开启异步支持(@EnableAsync)。
  2. 创建专门的异步处理类(如 @Async 注解的方法)或集成 JeecgBoot 自带的 RabbitMQ/Kafka 支持。
  3. 前端在提交耗时任务后,应显示“任务处理中”的提示,并设计轮询机制或 WebSocket 通知来获取最终结果。

注意事项: 异步方法无法通过 try-catch 在主线程中捕获异常,需要单独配置异步异常处理器(AsyncUncaughtExceptionHandler)来记录日志。


实践 6:遵循代码分层与模块化开发

说明: 随着 JeecgBoot 项目变大,单体应用容易变得臃肿。最佳实践是严格遵循 Controller -> Service -> Mapper 的分层结构,并利用 JeecgBoot 的微服务支持(Spring Cloud Alibaba)将业务拆分为独立的


性能优化建议

性能优化建议

优化 1:数据库查询优化与慢SQL治理

说明: JeecgBoot 在开发阶段为了快速实现功能,往往会在列表查询中关联过多表或未限制查询字段。随着数据量增长,全表扫描(Full Table Scan)和大量回表操作会导致数据库成为主要瓶颈。

实施方法:

  1. 启用并分析 JeecgBoot 自带的 SQL 监控功能(基于 Druid),定位执行时间超过 500ms 的 SQL 语句。
  2. 针对高频的大数据量表(如日志表、流程表),在 whereorder byjoin 的关联字段上建立联合索引。
  3. 在代码生成器配置中,强制关闭 select *,改为仅查询需要的字段。
  4. 对于深度分页(如翻到第 100 页),采用 “延迟关联” 策略,先通过覆盖索引查到 ID,再回表查询详细数据。

预期效果: 典型业务场景下,数据库查询响应时间可降低 50%-80%,系统吞吐量提升 30% 以上。


优化 2:接口数据传输精简

说明: 前端表格组件在请求数据时,后端往往返回了所有字段,包括大文本、富文本内容或无需展示的关联对象。这导致网络传输耗时增加且前端渲染负担加重。

实施方法:

  1. 利用 JeecgBoot 的 @Dict 注解和字段脱敏功能,对于列表页接口,使用 DTO(Data Transfer Object)仅返回前端展示所需的字段。
  2. 在后端 Controller 中,针对不同的视图(列表页 vs 详情页)定义不同的查询 SQL 或返回对象,避免列表接口返回 CLOB/BLOB 大字段。
  3. 开启 Gzip 压缩,在 Nginx 或 Gateway 层面压缩 JSON 响应体。

预期效果: 网络传输数据量减少 40%-70%,首屏加载时间(FCP)缩短 20%-30%。


优化 3:前端资源加载与渲染性能优化

说明: JeecgBoot 前端基于 Vue 2/3 + Ant Design Vue,默认集成了大量组件。若未进行路由懒加载和组件按需引入,会导致首屏 JS 体积过大,白屏时间长。

实施方法:

  1. 确保所有路由级别组件均采用动态导入语法(() => import('...')),实现路由懒加载。
  2. 配置 Webpack/Vite 的 SplitChunks 策略,将 node_modules 中的公共库(如 Vue, Ant Design Vue)提取为独立的 Vendor Chunk,利用浏览器长期缓存。
  3. 对 Ant Design Vue 组件库开启按需引入,移除未使用的组件。
  4. 针对大数据量列表,强制使用虚拟滚动组件,而非原生的 a-table 全量渲染。

预期效果: 首屏资源加载体积减少 30%-50%,首屏渲染时间提升 40%。


优化 4:Redis 缓存策略优化

说明: 系统中字典表、权限配置、部门架构等数据变动频率低,但读取频率极高。若每次请求都查询数据库,会造成极大的资源浪费。

实施方法:

  1. 利用 JeecgBoot 的 @Cacheable 注解,对字典翻译接口、用户权限信息进行本地或分布式缓存。
  2. 针对复杂的统计报表(如 Dashboard 首页大屏),在数据更新时预计算并写入 Redis,设置合理的过期时间(如 5 分钟),接口直接读取缓存结果。
  3. 避免缓存穿透,对查询为空的数据也进行短时缓存。

预期效果: 高频读取接口(如字典、权限)的 QPS 上限提升 10 倍以上,数据库 CPU 占用率下降 20%-40%。


优化 5:异步处理与解耦

说明: 业务中常包含发送通知、记录操作日志、同步第三方数据等非主流程逻辑。在主线程中同步执行这些


学习要点

  • JeecgBoot 是一款基于代码生成器的低代码开发平台,通过在线配置表单和报表显著提升开发效率。
  • 采用前后端分离架构,前端基于 Ant Design Vue,后端集成 Spring Boot、Mybatis 等主流企业级技术栈。
  • 内置强大的代码生成器,支持单表、树表、主子表等多种业务场景的在线智能化代码生成。
  • 提供开箱即用的通用功能模块,包括用户权限、字典管理、定时任务及系统监控等,大幅减少重复工作。
  • 集成微服务基础架构,支持 Spring Cloud Alibaba,为构建分布式大型应用提供底层支撑。
  • 具备灵活的表单设计器,支持拖拽式可视化流程配置,能够快速响应复杂的业务需求变更。
  • 拥有活跃的开源社区和完善的文档体系,降低了学习成本并保障了长期的技术支持。

学习路径

学习路径

阶段 1:环境搭建与基础入门

学习内容:

  • JeecgBoot 的技术架构与核心特性(低代码、代码生成器)
  • 开发环境配置(JDK 1.8+, Node.js, Maven, Redis, Nginx)
  • 后端项目启动与运行
  • 前端项目(Ant Design Vue)启动与运行
  • 熟悉系统菜单、权限管理与系统日志功能

学习时间: 1-2周

学习资源:

  • JeecgBoot 官方文档
  • JeecgBoot GitHub 仓库 README
  • B站搜索:JeecgBoot 入门教程

学习建议: 建议优先阅读官方文档的“快速开始”部分。在本地成功跑通项目是第一阶段的核心目标,不要急于修改代码,先体验系统自带的演示功能,理解其“Online 在线开发”的思维模式。


阶段 2:核心功能与代码生成实战

学习内容:

  • 数据库设计与单表规范
  • 使用代码生成器(Online Coding)生成前后端代码
  • 生成代码的逆向工程理解(Vue 页面结构、Java Controller/Service/Mapper 结构)
  • 表单设计器的使用
  • 基础 CRUD(增删改查)功能的自定义修改

学习时间: 2-3周

学习资源:

  • 官方文档 - 代码生成章节
  • JeecgBoot 官方示例项目(jeecg-boot-module-demo)
  • 社区实战案例视频

学习建议: 这是 JeecgBoot 最具价值的阶段。请尝试设计一个简单的业务表(如“订单管理”),使用代码生成器一键生成功能,并在此基础上进行微调。重点理解生成的代码是如何与数据库交互的,以及前端组件是如何通过 API 与后端通信的。


阶段 3:进阶开发与定制化扩展

学习内容:

  • 自定义查询条件与数据权限控制
  • 接口权限与按钮权限的精细化配置
  • 常用扩展点开发(自定义表单控件、自定义字典、自定义校验)
  • 在线报表配置
  • 集成第三方接口(如文件上传、短信发送等)

学习时间: 3-4周

学习资源:

  • JeecgBoot 开发者文档
  • Ant Design Vue 官方文档(前端组件库深入)
  • 源码阅读:jeecg-boot-base-core(核心工具类)

学习建议: 此时你已经能生成标准代码,现在需要学习如何“打破”标准。尝试修改查询 SQL,或者在前端通过插槽自定义表格列的显示内容。深入阅读 JeecgControllerBaseEntity 的源码,理解框架提供的工具类(如 Result 对象、QueryWrapper 用法)。


阶段 4:架构深入与性能优化

学习内容:

  • JeecgBoot 微服务版本架构
  • 部署与运维(Docker 容器化部署、Nginx 负载均衡)
  • 缓存机制与性能优化
  • 工作流引擎的集成与使用(如 Flowable 集成)
  • 系统安全加固与升级指南

学习时间: 4周以上

学习资源:

  • JeecgBoot 微服务版文档
  • Spring Cloud Alibaba 学习资料
  • Docker 及 Kubernetes 相关教程

学习建议: 这个阶段旨在将开发者提升为架构师。关注点应从单一功能转向整体系统的稳定性与扩展性。建议尝试在 Linux 服务器上使用 Docker 部署一套完整的 JeecgBoot 环境,并配置自动化构建流程(CI/CD)。如果是单体项目开发,此阶段可作为选学。


常见问题

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

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

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,采用前后端分离架构。它开源并免费,主要解决了 Java 开发中重复性高、效率低下的问题。通过在线代码生成器,它可以快速生成单表、树表等常见的 CRUD(增删改查)功能代码,极大地减少了开发者编写基础代码和配置 XML 的时间,让开发者能更专注于业务逻辑的实现。其核心架构通常基于 Spring Boot(后端)和 Vue 3(前端)。

2: JeecgBoot 的技术栈主要由哪些部分组成?

2: JeecgBoot 的技术栈主要由哪些部分组成?

A: JeecgBoot 的技术栈非常主流且稳定,具体如下:

  • 后端技术栈:基于 Spring Boot 2.x 或 3.x(视版本而定),持久层使用 MyBatis-Plus,数据库连接池使用 Druid,安全框架使用 Shiro 或 JWT,并集成了 Redis 缓存。
  • 前端技术栈:基于 Vue 3.x + TypeScript + Vite,UI 组件库主要采用 Ant Design Vue。
  • 核心特性:代码生成器、Online 在线表单开发、低代码能力、微服务支持(JeecgCloud 版本)。

3: 如何快速开始运行 JeecgBoot 项目?

3: 如何快速开始运行 JeecgBoot 项目?

A: 启动 JeecgBoot 通常需要以下步骤:

  1. 环境准备:确保安装了 JDK (1.8+ 或 17+)、Node.js (14+)、MySQL (5.7+) 和 Redis。
  2. 后端启动
    • 下载源码并解压。
    • 执行 db 目录下的 SQL 脚本初始化数据库。
    • 修改 application.yml 中的数据库和 Redis 连接配置。
    • 运行 JeecgBootApplication.java 主类启动后端服务。
  3. 前端启动
    • 进入前端目录 ant-design-vue-jeecg
    • 执行 npm installyarn install 安装依赖。
    • 执行 npm run serveyarn serve 启动开发服务器。
    • 浏览器访问 http://localhost:3100(默认端口)即可看到登录页面。

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

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

A: 代码生成器是 JeecgBoot 的核心功能,使用流程如下:

  1. 数据库建表:在数据库中创建一张业务表,建议遵循 Jeecg 的字段规范(如主键名为 id,创建时间名为 create_time 等)。
  2. 在线配置:登录系统后,进入“在线开发” -> “代码生成器”菜单。
  3. 导入表单:点击导入,选择刚才创建的数据库表。
  4. 配置信息:在列表中点击“编辑”或“代码生成”,配置页面显示的表单字段、查询条件、是否必填、校验规则等。
  5. 生成代码:配置完成后,点击“生成代码”。系统会生成一个压缩包,包含前端 Vue 文件和后端 Java、Mapper XML 文件。
  6. 代码移植:将生成的代码解压并复制到项目的对应目录下,重启后端和前端即可看到新功能菜单。

5: JeecgBoot 与 JeecgCloud 有什么区别?

5: JeecgBoot 与 JeecgCloud 有什么区别?

A: 两者本质上是同一套代码体系,但架构不同:

  • JeecgBoot:通常指单体架构版本。适合中小型项目、快速交付、内部管理系统,部署简单,只需要一个 Java 进程即可运行。
  • JeecgCloud:指微服务架构版本。基于 Spring Cloud Alibaba 构建,适合大型项目、高并发场景。它将系统拆分为多个服务(如 Gateway、Auth、System 等),支持分布式部署、服务注册与发现(Nacos)、分布式事务(Seata)等,部署和运维复杂度相对较高。

6: JeecgBoot 是否支持私有化部署?商业项目使用是否收费?

6: JeecgBoot 是否支持私有化部署?商业项目使用是否收费?

A: JeecgBoot 是开源项目,遵循开源协议(通常是 Apache License 2.0)。

  • 私有化部署:完全支持。您可以将代码下载下来部署在您自己的内网服务器上。
  • 商业使用:根据其开源协议,它是免费用于商业项目的。但是,如果您使用了其官方提供的某些付费的增值插件(如特定的企业级报表大屏插件、特定的 App 快速开发插件等),则需要购买相应的授权许可。对于核心的开源框架部分,商用是免费的。

7: 在使用过程中遇到权限控制问题(如按钮不可见),通常是什么原因?

7: 在使用过程中遇到权限控制问题(如按钮不可见),通常是什么原因?

A: JeecgBoot 使用 Shiro + JWT 进行权限控制,按钮不可见通常有以下原因:

  1. 角色未分配:当前登录用户所属的角色没有分配该菜单页面的访问

思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**: JeecgBoot 提供了强大的代码生成器。请尝试配置数据库中的一张包含“主子表”关系的表(例如订单 Order 和订单明细 OrderDetail),并使用代码生成器生成前后端代码。生成后,如何在生成的界面中实现“主表一对多列表”的展示效果?

提示**: 关注代码生成器配置页面的“表单类型”选项,以及在 UI 模板中选择正确的控件类型(如 SelectTable 或 Popup)。检查生成的 Vue 组件中 props 的传递方式。


实践建议

以下是针对 JeecgBoot 仓库的 6 条实践建议,涵盖架构设计、开发规范及 AI 落地等实际场景:

1. 优先使用 Online 低代码开发,但需严控业务边界

JeecgBoot 的核心优势在于其 Online 在线开发表单(Online 表单)和代码生成器。

  • 实践建议:对于标准的 CRUD(增删改查)业务,如系统配置、字典管理,优先使用 Online 表单直接配置发布,无需编写代码。
  • 常见陷阱避免将复杂业务逻辑强行塞入 Online 表单。Online 表单适合处理标准化的数据操作,如果涉及复杂的跨表事务、特殊校验规则或复杂的第三方 API 调用,强行配置会导致维护困难。此时应使用代码生成器生成基础代码,然后在生成的 Controller/Service 中进行手工编码扩展。

2. 严格执行“二次开发隔离”策略

JeecgBoot 架构分为 jeecg-boot-parent(核心框架)和业务代码。

  • 实践建议:在 Maven/Gradle 项目结构中,绝对不要修改 JeecgBoot 的核心模块(如 jeecg-module-system)内部代码。应在独立的业务模块(如 jeecg-module-demo)中开发。如果必须修改核心功能,请使用继承(Inheritance)或 AOP 切面进行扩展,而不是直接改动源码。
  • 常见陷阱:直接修改核心模块代码会导致后续框架版本升级时出现严重的合并冲突,甚至丢失业务逻辑。

3. AI 助手与知识库的“私有化数据清洗”实践

JeecgBoot 近期集成了 AI 知识库和聊天助手功能。

  • 实践建议:在构建企业级 AI 知识库时,不要直接上传原始文档(如 PDF、Word)。建议先将文档转换为 Markdown 格式,并清洗掉无用的页眉页脚、广告和乱码,再进行向量化入库。
  • 常见陷阱忽视数据权限隔离。AI 聊天助手可能会检索到用户无权查看的知识库片段。在开发 AI 应用时,必须在 Prompt 或检索逻辑中显式注入当前用户的权限过滤条件(如 org_id),防止 AI 越权回答敏感问题。

4. 代码生成器的模板定制与版本管理

JeecgBoot 提供了强大的代码生成器,支持单表、树表、主子表等模板。

  • 实践建议:不要每次生成代码后都手动修改重复的代码。建议将公司统一的代码规范(如异常处理类、统一日志注解、特定的返回结构)写入代码生成器的模板中(FTL 模板)。建立团队内部的模板库,实现“一键生成即可运行”。
  • 常见陷阱重复生成覆盖手写代码。如果已经对生成的代码进行了手工修改,下次再次生成时如果不小心勾选了“覆盖文件”,手写逻辑会丢失。建议将复杂的业务逻辑抽取到 Service 层的实现类中,或者使用代码生成器的“只生成 Entity/Mapper”模式来规避覆盖风险。

5. 前后端分离下的接口权限精细化控制

JeecgBoot 采用 Vue3 (Ant Design Vue) + Spring Boot 架构。

  • 实践建议:充分利用 @PermissionData 注解进行数据权限控制(如查看本部门数据),而不是仅依赖前端菜单隐藏。前端隐藏菜单仅是 UI 体验,后端接口必须严格校验权限。对于 AI 流程编排等高敏感接口,务必在网关或拦截器中增加额外的频率限制,防止 API 滥用导致 Token 消耗过大。
  • 常见陷阱过度依赖前端校验。直接通过 Postman 等工具绕过前端页面调用后端 API 是常见的渗透测试手段,必须确保后端接口的安全性。

6. AI 流程编排与 MCP 插件的“幂等性”设计

平台支持 AI 流程编排和 MCP (Model Context Protocol) 插件。

  • 实践建议:在开发 MCP �

引用

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



站内链接

相关文章