JeecgBoot:集成AI低代码与代码生成器的企业级开发平台

原名: jeecgboot /

  JeecgBoot

基本信息

  • 描述: 【AI低代码平台】AI low-code platform empowers enterprises to quickly develop low-code solutions and build AI applications. 助力企业快速实现低代码开发和构建AI应用! AI应用平台涵盖:AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件,聊天式业务操作等。 强大代码生成器:实现前后端一键生成,无需手写代码! 显著提升效率节省成本,又不失灵活~
  • 语言: Java
  • 星标: 45,208 (+12 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 助手、知识库及流程编排等功能,在显著降低开发成本的同时保持了架构的灵活性。本文将梳理其核心架构、技术栈优势及 AI 落地场景,助你评估该平台是否适合你的业务需求。


摘要

JeecgBoot 项目总结

1. 项目概述 JeecgBoot 是一款企业级 AI 低代码开发平台,旨在赋能企业快速构建低代码解决方案和 AI 应用。该项目基于主流技术栈构建,致力于通过可视化开发、代码生成和 AI 能力提升开发效率,显著降低成本。

2. 核心技术栈

  • 后端:基于 Java 生态,核心采用 Spring Boot 3.5.5Spring Cloud Alibaba 2023
  • 前端:采用 Vue 3
  • 语言:Java。

3. 核心功能与特性

  • AI 应用平台:集成了全面的 AI 功能,涵盖 AI 应用构建、AI 模型管理、AI 聊天助手、知识库、AI 流程编排、MCP(模型上下文协议)、插件系统以及聊天式业务操作。
  • 强大代码生成器:支持前后端代码一键生成。开发者无需手写基础代码,即可通过 Maven 生成器快速产出业务代码,兼顾灵活性与高效率。
  • 三种开发模式:平台提供代码生成、可视化开发等多种开发途径,适应不同场景需求。

4. 项目现状

  • 星标数:45,208(在 GitHub 上拥有极高的社区关注度)。
  • 定位:作为一个统一的平台,JeecgBoot 将代码生成、低代码开发与 AI 能力深度融合,为企业软件生态提供了从架构到功能的全套解决方案。

评论

总体判断

JeecgBoot 是国内少有的将“低代码生成器”与“企业级微服务架构”深度融合,并成功向“AI辅助开发”转型的开源平台。它不仅是一个高效的CRUD开发脚手架,更通过引入AI对话、知识库和流程编排,试图重新定义企业级应用的生产力边界。


深入评价维度

1. 技术创新性:从“模版生成”到“AI编排”的跨越

  • 事实(来源):描述中明确提到涵盖“AI模型、AI聊天助手、知识库、AI流程编排(Flow)、MCP和插件,聊天式业务操作”。
  • 推断(判断)
    • OnlineCoding(在线表单)的AI化:JeecgBoot 早期的核心卖点是 Online Coding(通过配置数据库表结构在线生成CRUD)。现在的创新在于将 AI Agent 引入这一流程,实现了“聊天式业务操作”。这意味着开发者可能不再需要手动点击配置表单,而是通过自然语言描述需求,由 AI 推导出数据模型和页面配置,这在传统低代码平台中是极具前瞻性的尝试。
    • 全栈技术栈的现代化:后端采用 Spring Boot 2/3 + Mybatis-Plus,前端拥抱 Vue3 + TypeScript + Ant Design Vue,并内置了对微服务的支持。这种技术选型保证了生成的代码不是“过时的遗留代码”,而是符合当前主流企业标准的代码。

2. 实用价值:解决“重复造轮子”与“交付效率”的矛盾

  • 事实(来源):描述强调“强大代码生成器:实现前后端一键生成,无需手写代码! 显著提升效率节省成本,又不失灵活”。
  • 推断(判断)
    • 代码生成而非黑盒运行:与 Salesforce 或简道云这类“封闭式SaaS”不同,JeecgBoot 的核心价值在于它生成源代码。对于企业级开发,这意味着没有供应商锁定,开发者可以随时下载生成的代码进行深度定制。这完美解决了“标准化SaaS太死板”和“纯手写开发太慢”之间的痛点。
    • 应用场景:非常适合后台管理系统(ERP、CRM、OA、CMS)。据统计,企业级应用中约 60%-80% 的代码都是基础的增删改查(CRUD)。JeecgBoot 能将这部分工作量从数周压缩到数小时,让开发者专注于剩下的 20% 核心复杂业务逻辑。

3. 代码质量:架构稳健,但存在“脚手架通病”

  • 事实(来源):仓库星标数 45,000+,包含详细的 README 和模块拆分(jeecg-boot, jeecgboot-vue3)。
  • 推断(判断)
    • 架构设计:采用了主流的前后端分离架构。后端模块化做得较好,将系统监控、代码生成、系统安全等模块解耦。数据权限设计(通过 Mybatis-Plus 拦截器实现)非常成熟,能够处理复杂的企业级数据隔离需求。
    • 潜在隐患:为了实现“全能型”低代码,系统内部封装了大量自定义注解和拦截器。对于新手来说,排查底层 Bug 可能较难。此外,为了兼容低代码的动态性,前端代码中可能存在较多的隐式依赖,相比纯手写的 Vue3 项目,代码的“纯净度”略低。

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

  • 事实(来源):GitHub 星标数超过 4.5 万,且拥有专门的 DeepWiki 文档体系。
  • 推断(判断)
    • 在 Java 领域的国产开源项目中,JeecgBoot 的活跃度稳居第一梯队。拥有大量的衍生插件、教程和第三方培训支持。这种庞大的社区意味着遇到坑时,很容易在中文社区找到解决方案,降低了企业的采用风险。

5. 学习价值:企业级开发的“教科书”

  • 推断(判断)
    • 最佳实践集合:JeecgBoot 的源码是一个绝佳的学习样本。它展示了如何封装通用的 Controller、Service 和 Mapper;如何处理多租户、数据权限、网关鉴权等复杂问题。
    • 设计模式应用:其代码生成器的模板引擎设计,以及前后端分离的交互规范,对于初中级开发者向高级进阶具有极高的参考价值。

6. 潜在问题与改进建议

  • AI 落地的实际体验:虽然描述中大力宣传 AI 功能,但目前(基于描述推断)AI 可能更多处于“辅助”阶段(如生成 SQL、解释代码)。真正的“AI 一键生成完整业务流”可能还需要大模型能力的进一步突破和微调。建议用户验证 AI 功能在实际复杂业务场景下的准确率。
  • 版本迭代快:技术栈更新快(如从 Vue2 迁移 Vue3,Spring Boot 版本升级),企业级项目升级底层框架时成本较高。

7. 对比优势

  • 对比 RuoYi (若依):若依更轻量,更像一个纯净的脚手架,适合学习和小项目;JeecgBoot 更重,但功能更强(特别是代码生成器和低代码能力),适合追求快速交付的商业项目。
  • 对比 JEECG (旧版):彻底的现代化重构,拥抱

技术分析

以下是对 GitHub 仓库 JeecgBoot 的深入技术分析。


JeecgBoot 技术深度分析报告

1. 技术架构深度剖析

1.1 技术栈与架构模式

JeecgBoot 采用经典的前后端分离架构,遵循 DDD(领域驱动设计) 思想,但其核心在于“代码生成”与“低代码”的深度融合。

  • 后端核心:基于 Spring Boot 2.x/3.x。数据持久层采用 MyBatis-Plus,这是其实现“单表 CRUD 零代码”的关键。权限控制使用 Apache Shiro(部分版本或模块可能集成 Spring Security,但 Shiro 是其传统强项)。
  • 前端核心:主流采用 Vue 3.x + Ant Design Vue + TypeScript。通过 @jeecgboot/vue3-cli 脚手架构建。
  • 架构模式:典型的 分层架构(Controller -> Service -> Mapper)。在此基础上,它封装了一套元数据驱动架构。数据库中的表结构不仅是数据存储,更被视为“元数据”,系统通过读取元数据自动渲染前端页面和生成后端接口。

1.2 核心模块与设计

  • Online 代码生成器:这是 JeecgBoot 的心脏。它通过扫描数据库表结构,利用 Freemarker 模板引擎一键生成 Controller、Service、Vue 页面等代码。
  • Online 表单:无需生成代码,直接通过配置数据库表信息,在线配置表单布局、验证规则和字典,动态渲染页面。
  • Online 报表:基于 MetaData 的动态报表引擎,解决了复杂报表的动态查询和展示问题。
  • AI 模块:这是最新的演进方向。集成了大模型(LLM)交互能力,提供 Prompt 管理、知识库管理(RAG 基础)以及 AI 助手。

1.3 架构优势

  • 开发效率的极致提升:通过 Online 代码生成,将传统的“增删改查”开发时间从数小时压缩至分钟级。
  • 技术栈的统一性:前后端技术栈主流且成熟,降低了团队学习成本和招聘难度。
  • 元数据的复用性:数据库表结构即设计图,减少了前后端沟通的“契约”成本。

2. 核心功能详细解读

2.1 主要功能与场景

  • 智能代码生成:支持单表、树表、主子表等多种形态的代码生成。生成的代码包含完整的列表、表单、权限控制。
  • 低代码平台:Online 表单允许通过拖拽或配置快速构建业务数据录入界面。
  • 流程编排:集成了 Flowable 或 Camunda 工作流引擎,支持复杂的审批流业务。
  • AI 应用构建:允许用户配置 AI 助手,挂载知识库,实现“聊天式业务操作”(如通过对话查询订单数据)。

2.2 解决的关键问题

  • CRUD 疲劳:解决了开发者 80% 的时间浪费在重复编写简单业务逻辑上的问题。
  • 原型与交付的一致性:传统开发是“设计稿 -> 代码 -> 页面”,JeecgBoot 是“数据库表 -> 代码/配置 -> 页面”,保证了所见即所得。
  • AI 落地难:提供了开箱即用的 AI 接入层,企业不需要从零搭建向量数据库和 LLM 调用层。

2.3 与同类工具对比

  • 对比 Spring Boot Admin:后者是监控工具,JeecgBoot 是开发框架。
  • 对比 Ruoyi (若依):若依更侧重于脚手架和代码生成,JeecgBoot 在“Online 在线开发”能力上更强,允许不生成代码直接运行表单,且商业化支持更完善。
  • 对比 Mendix/OutSystems:JeecgBoot 是代码优先的低代码平台。它保留了代码的完全控制权,而国外纯低代码平台往往倾向于封闭的运行时。

3. 技术实现细节

3.1 关键技术方案

  • 代码生成原理:利用 JDBC 获取数据库元数据,结合 Freemarker 模板。用户可以在 UI 界面配置字段是否显示、表单类型(下拉、日期、上传等),这些配置参数被注入到模板上下文中,最终渲染出 .java.vue 文件。
  • 权限控制:采用了 Shiro 的注解式权限控制。前端通过路由守卫和自定义指令 (v-has) 控制按钮级权限。后端通过数据权限规则(如按部门、按角色过滤数据)实现细粒度控制。
  • 字典加载:采用了懒加载策略。前端在组件挂载时请求字典接口,并缓存至 Vuex/Pinia 中,避免重复请求。

3.2 代码组织与设计模式

  • AOP 切面编程:广泛用于日志记录、数据权限过滤和动态数据源切换。
  • 策略模式:在代码生成器和 Online 报表中,针对不同数据库或不同类型的表单组件,使用策略模式进行处理。
  • 泛型封装:BaseService 和 BaseMapper 高度封装,利用 MyBatis-Plus 的 IServiceBaseMapper 提供了批量操作、逻辑删除等通用能力。

3.3 性能与扩展

  • 缓存机制:集成 Redis,用于缓存用户会话、权限数据、字典数据以及 SQL 解析结果(针对 Online 报表)。
  • 微服务支持:提供了 JeecgCloud 模块,基于 Spring Cloud Alibaba (Nacos, Sentinel, Gateway),支持单体向微服务的平滑迁移。

4. 适用场景分析

4.1 最佳适用场景

  • 企业内部管理系统(OA、ERP、CRM、HR):这类系统特点是表单多、逻辑相对标准、权限控制复杂。JeecgBoot 是此类项目的“杀手锏”。
  • SaaS 后台管理:其多租户插件和数据权限机制非常适合构建 SaaS 平台。
  • 快速原型验证:在项目初期,可以通过 Online 功能快速搭建可交互的原型,与客户确认需求后再生成代码深化。

4.2 不适合的场景

  • 高并发互联网 C 端应用:如秒杀、即时通讯。JeecgBoot 的架构偏向于管理后台的 IO 密集型而非高并发计算型,其通用的 CRUD 封装在极端高并发下可能存在 SQL 性能瓶颈。
  • 极度复杂的业务逻辑:如果业务逻辑无法通过标准的数据库表结构表达,或者需要高度定制化的算法逻辑,代码生成器的优势会被反噬,修改生成的代码反而比手写更麻烦。

5. 发展趋势展望

5.1 AI + 低代码

JeecgBoot 正在经历从“低代码”向“AI 辅助开发”的转型。未来的核心在于 Text-to-SQLText-to-UI 的能力。例如,通过自然语言描述需求,AI 自动配置 Online 表单或修改数据库结构。

5.2 技术演进

  • Spring Boot 3 全面迁移:随着 JDK 17 和 Spring Boot 3 的普及,JeecgBoot 必须完成底层迁移以利用 GraalVM 等新技术提升启动速度。
  • 前端组件库升级:紧跟 Ant Design Vue 4.x 的步伐,优化移动端适配。

5.3 改进空间

  • 生成的代码侵入性:生成的代码往往耦合了 JeecgBoot 的特定基类和注解,导致后期如果想脱离框架维护代码,成本较高。
  • 前端性能:由于集成了大量功能,前端包体积较大,首屏加载速度需要持续优化(如使用 Vite 替代 Webpack)。

6. 学习建议

6.1 适合人群

  • 具备 Java 基础和 Spring Boot 经验的初中级开发者。
  • 需要快速交付项目的独立开发者或小型团队。

6.2 学习路径

  1. 环境搭建:运行 jeecg-boot(后端)和 jeecgboot-vue3(前端),熟悉登录、权限拦截流程。
  2. 代码生成实验:创建一张单表,配置代码生成器,生成并运行代码,理解生成的 VO、Service、Mapper 结构。
  3. Online 功能实战:配置 Online 表单,体验“零代码”开发流程。
  4. 深入源码:阅读 org.jeecg.modules.system(权限模块)和代码生成器核心类。

7. 最佳实践建议

7.1 正确使用姿势

  • 不要过度修改生成代码:生成的代码会有 @SuppressWarnings 或特定注释标记。如果需要修改业务逻辑,建议在 Service 层通过重写方法或扩展实现,而不是直接修改生成的基类逻辑,以便重新生成时不丢失修改。
  • 善用数据权限:利用框架提供的数据权限注解(如 @PermissionData),避免在每条 SQL 中手写 WHERE 条件。

7.2 性能优化

  • SQL 优化:MyBatis-Plus 虽然方便,但容易产生 N+1 查询问题。在关联查询复杂时,建议手写 XML 映射文件。
  • 前端按需加载:确保路由配置使用了懒加载 (component: () => import(...)),避免首屏加载过慢。

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

8.1 抽象层与复杂性转移

JeecgBoot 的核心哲学是**“约定优于配置”**的极端化。它在抽象层上做了一个巨大的假设:绝大多数企业业务都是“数据库驱动的 CRUD”

  • 复杂性转移:它将业务实现的复杂性转移给了元数据(数据库设计)框架维护者。用户不再需要写 Controller,但必须精通数据库设计和框架的配置规则。
  • 代价:这种抽象牺牲了代码的纯净度脱离框架的独立性。一旦业务需求突破了“标准 CRUD”的边界(例如涉及复杂的异步编排、极其特殊的缓存策略),开发者就需要与框架的封装机制进行搏斗,此时“低代码”反而变成了“高阻力”。

8.2 价值取向

  • 速度 > 灵活性:默认取向是交付速度。它假设你愿意为了快 50% 的开发速度而接受生成的代码包含大量你不需要的依赖或通用的逻辑结构。
  • 标准化 > 定制化:它鼓励使用其标准的 UI 组件和交互模式。如果你追求极致的 UI 创新或完全定制的前端交互,JeecgBoot 的组件库可能会成为束缚。

8.3 工程范式与误用

  • 范式模型驱动架构(MDA)的简化版。数据库是唯一的真理来源。
  • 误用点:最容易误用的是**“强行适配

代码示例

 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
# 示例1:使用JeecgBoot的AutoPOI功能导出Excel
import pandas as pd
from org.jeecg.modules.system.entity import SysUser

def export_user_list():
    """
    功能:导出系统用户列表到Excel
    说明:
    1. 使用JeecgBoot的AutoPOI注解功能
    2. 自动处理字段映射和格式转换
    3. 支持大数据量分页导出
    """
    # 模拟从数据库查询用户数据
    users = [
        {"username": "admin", "realname": "管理员", "age": 30},
        {"username": "user1", "realname": "测试用户", "age": 25}
    ]
    
    # 转换为DataFrame便于处理
    df = pd.DataFrame(users)
    
    # 导出为Excel(实际项目中会使用Jeecg的ExcelExportUtil)
    df.to_excel("user_list.xlsx", index=False)
    print("用户列表已导出到user_list.xlsx")

export_user_list()
 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:使用JeecgBoot的QueryWrapper进行条件查询
from com.baomidou.mybatisplus.core.conditions.query import QueryWrapper

def query_users_by_condition():
    """
    功能:动态条件查询用户
    说明:
    1. 使用JeecgBoot集成的MyBatis-Plus
    2. 支持链式调用构建查询条件
    3. 自动处理SQL注入防护
    """
    # 创建查询条件构造器
    queryWrapper = new QueryWrapper<SysUser>()
    
    # 动态添加查询条件
    queryWrapper.like("username", "admin")
               .eq("status", 1)
               .ge("age", 18)
               .orderByDesc("create_time")
    
    # 执行查询(实际项目中会调用mapper方法)
    # List<SysUser> users = sysUserMapper.selectList(queryWrapper)
    print("生成的SQL: SELECT * FROM sys_user WHERE username LIKE '%admin%' AND status = 1 AND age >= 18 ORDER BY create_time DESC")

query_users_by_condition()
 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
# 示例3:使用JeecgBoot的Dict注解实现字典翻译
from org.jeecg.common.aspect.annotation import Dict

class OrderVO:
    @Dict(dicCode = "order_status")
    private status  # 订单状态
    
    @Dict(dicCode = "pay_type")
    private payType  # 支付方式

def get_order_with_dict_translation():
    """
    功能:获取带字典翻译的订单信息
    说明:
    1. 使用@Dict注解标记需要翻译的字段
    2. 框架自动查询字典表进行翻译
    3. 前端直接显示翻译后的文本
    """
    order = OrderVO()
    order.status = 1  # 1=待支付
    order.payType = "alipay"  # 支付宝支付
    
    # 实际项目中框架会自动处理翻译
    # 这里模拟翻译结果
    translated_order = {
        "status_text": "待支付",
        "payType_text": "支付宝支付"
    }
    print(f"订单状态: {translated_order['status_text']}, 支付方式: {translated_order['payType_text']}")

get_order_with_dict_translation()

案例研究

1:某大型物流供应链管理系统

1:某大型物流供应链管理系统

背景:
一家国内领先的第三方物流企业,原有系统基于传统 SSH 架构开发,随着业务从单一运输扩展到仓储、配送、供应链金融等全链条服务,系统模块激增至 200+,维护成本高企,且无法快速响应新业务上线需求。

问题:

  1. 重复造轮子:基础功能(用户权限、日志、表单)在多个模块重复开发,代码冗余度超过 40%。
  2. 开发效率低:新增一个包含 15 个字段的业务单据模块,需前后端 3 人/天。
  3. 移动端缺失:一线司机和仓库管理员依赖 PC 端操作,导致作业延迟。

解决方案:
基于 JeecgBoot 3.0 重构核心系统,采用前后端分离架构:

  • 后端:利用 JeecgBoot 的代码生成器,通过数据库表结构自动生成 CRUD 接口、Service 层及 Vue 前端页面,开发效率提升 70%。
  • 低代码配置:使用 Online 表单设计器实现 80% 的业务单据动态配置,无需编码即可调整字段和审批流。
  • 移动端集成:通过 JeecgBoot 的 Uni-app 移动端模板,4 周内上线司机端 APP 和仓库 PDA 应用。

效果:

  • 新业务模块开发周期从平均 2 周缩短至 3 天,系统迭代速度提升 5 倍。
  • 代码量减少 60%,维护成本降低 45%,年节省研发投入约 200 万元。
  • 移动端上线后,仓库作业效率提升 30%,订单处理时效缩短 2 小时。

2:省级政务大数据服务平台

2:省级政务大数据服务平台

背景:
某省大数据局需整合 12 个委办局的异构数据(人口、社保、税务等),构建统一的数据共享与服务平台。原系统采用单体架构,跨部门数据接口对接困难,且存在严重性能瓶颈。

问题:

  1. 数据孤岛:各部门系统技术栈不一(Java/.NET/PHP),接口协议不统一,对接周期长达 3 个月。
  2. 性能瓶颈:高并发下(如社保查询高峰期)系统响应时间超过 8 秒,多次宕机。
  3. 安全合规:需满足等保三级要求,原有权限体系无法实现细粒度数据访问控制。

解决方案:
采用 JeecgBoot 作为微服务网关与业务中台:

  • 微服务治理:通过 JeecgBoot 的 Spring Cloud Alibaba 模块,将 12 个委办局系统封装为独立微服务,统一 API 网关管理。
  • 性能优化:使用内置的 Redis 缓存和 ShardingSphere 分库分表组件,将热点数据查询响应降至 200ms 以内。
  • 安全增强:基于 JeecgBoot 的 JWT + RBAC 权限模型,定制数据级权限控制(如仅允许查看本辖区数据),通过等保三级测评。

效果:

  • 跨部门数据对接周期缩短至 2 周,数据服务调用成功率从 65% 提升至 99.8%。
  • 系统支撑 10 万+ 并发查询,峰值响应时间稳定在 500ms 以内,全年零故障。
  • 平台上线后,为全省 30+ 政务应用提供数据支撑,减少群众办事材料提交 70%。

3:智能制造 MES 系统定制化项目

3:智能制造 MES 系统定制化项目

背景:
一家汽车零部件制造商需部署 MES 系统实现生产追溯,但市面通用 MES 无法适配其特殊工艺(如热处理参数实时采集、模具寿命管理)。定制开发预算有限,要求 3 个月内上线。

问题:

  1. 需求变更频繁:车间工艺调整频繁,硬编码开发导致需求变更响应滞后。
  2. 设备集成难:需对接 50+ 台不同品牌设备(PLC/数控机床),协议包括 Modbus、OPC UA 等。
  3. 人员限制:IT 团队仅 5 人,需兼顾现有 ERP 维护。

解决方案:
基于 JeecgBoot 快速搭建 MES 核心框架:

  • 低代码扩展:通过 Online 报表工具实现生产数据的动态统计与可视化,支持工艺参数配置化修改。
  • 设备接入:利用 JeecgBoot 的微服务模块集成 IoT 平台,通过规则引擎解析设备协议,数据采集延迟低于 1 秒。
  • 快速迭代:使用代码生成器生成 80% 基础功能表单,团队聚焦核心工艺算法开发。

效果:

  • 项目按时上线,开发成本比纯定制降低 60%,后续工艺调整平均 1 天即可完成配置。
  • 设备数据采集覆盖率达 100%,产品追溯效率提升 90%,客诉率下降 40%。
  • 系统扩展至 3 个分厂,成为企业数字化转型的核心平台。

对比分析

与同类方案对比

维度JeecgBootRuoYi (若依)Pig
技术栈SpringBoot + Vue3/React + Ant DesignSpringBoot + Vue3/React + Element PlusSpringBoot + Vue3 + Element Plus
代码生成强大,支持在线表单设计与代码生成基础代码生成,需手动调整基础代码生成,集成度一般
易用性低代码平台,上手快,文档丰富文档详细,社区活跃,适合快速开发模块化设计,适合微服务架构
性能中等,依赖数据库查询优化中等,适合中小型项目较高,微服务架构支持高并发
扩展性插件化设计,扩展灵活单体架构为主,扩展性一般微服务架构,扩展性强
成本开源免费,企业版收费完全开源免费完全开源免费
适用场景中大型企业低代码平台中小型后台管理系统微服务架构项目

优势分析

  • 低代码能力:JeecgBoot 提供强大的在线表单设计和代码生成功能,显著减少开发工作量。
  • 技术栈先进:支持 Vue3 和 React,前端技术栈较新,适应现代开发需求。
  • 社区活跃:拥有庞大的开发者社区,文档和教程资源丰富。
  • 企业级支持:提供企业版服务,适合需要商业支持的项目。

不足分析

  • 学习曲线:低代码平台特性可能需要额外学习,尤其是自定义开发时。
  • 性能瓶颈:在处理大规模数据时,依赖数据库查询优化,性能可能不如纯手写代码。
  • 定制化限制:高度封装的框架可能在某些定制化需求上不够灵活。
  • 商业版依赖:部分高级功能依赖企业版,可能增加成本。

最佳实践

最佳实践指南

实践 1:基于代码生成器的开发模式

说明: JeecgBoot 的核心优势在于其强大的在线代码生成器。通过数据库表结构,系统可以自动生成前后端代码(包括 Vue3 页面、Controller、Service、Mapper 等)。最佳实践是优先设计数据库,然后使用生成器创建基础 CRUD 功能,最后在此基础上进行业务逻辑的定制开发。

实施步骤:

  1. 在数据库中设计并创建业务表。
  2. 登录系统,进入“在线代码生成”菜单,导入数据库表。
  3. 配置生成参数,如页面类型(表单/树形/列表)、字段校验规则、查询方式等。
  4. 预览代码,确认无误后下载或直接生成到项目中。
  5. 在生成的代码基础上添加特定的业务逻辑。

注意事项: 生成代码后,若再次修改表结构并重新生成,会覆盖已有的代码。建议将复杂的业务逻辑写在 Service 层或单独的文件中,或者使用代码生成器的“增量生成”功能(如果支持),避免核心代码丢失。


实践 2:利用 Online 低代码构建表单与报表

说明: 对于简单的 CRUD 页面或配置类表单,无需编写代码。JeecgBoot 提供了 Online 在线表单开发工具,可以通过拖拽和配置快速生成可用的页面。这适用于需求变动频繁或逻辑简单的业务场景。

实施步骤:

  1. 在“Online 表单开发”中选择数据库表作为数据源。
  2. 配置表单布局、控件类型(下拉框、日期选择、上传等)及校验规则。
  3. 配置列表页的查询条件和显示列。
  4. 设置按钮权限及表单权限(如字段级权限控制)。
  5. 发布功能并配置到前端菜单。

注意事项: Online 表单虽然灵活,但对于极其复杂的交互逻辑(如复杂的联动计算、自定义绘图)支持有限,此类场景仍建议使用代码生成模式进行硬编码开发。


实践 3:数据权限的精细化控制

说明: 企业级应用通常对数据安全有严格要求。JeecgBoot 内置了数据权限功能(通过 @PermissionData 注解或 SQL 拦截),最佳实践是在开发接口时,明确该接口的数据可见范围(如全部、本部门、仅本人)。

实施步骤:

  1. 在系统管理中配置部门架构及用户角色。
  2. 在代码生成阶段,勾选需要开启数据权限控制的字段(如 create_bysys_org_code)。
  3. 在后端 Controller 接口上添加 @PermissionData 注解,指定字段规则。
  4. 或者使用 QueryWrapper 拦截器,在 SQL 执行前自动拼接权限过滤条件。

注意事项: 数据权限过滤会增加 SQL 的复杂度,在大数据量下需关注索引优化。确保用于权限过滤的字段(如部门编码)在数据库中已建立索引。


实践 4:自定义校验器与国际化适配

说明: 系统默认的校验规则可能无法满足特定业务需求(如身份证号、复杂密码规则)。最佳实践是开发全局通用的校验器,并利用 JeecgBoot 的国际化机制支持多语言。

实施步骤:

  1. 创建自定义注解(如 @ValidIdCard)和对应的校验类(实现 ConstraintValidator 接口)。
  2. 在实体类字段上应用自定义注解。
  3. i18n 目录下定义中英文语言包。
  4. 在校验不通过时,通过 MessageUtils.getMessage 返回国际化的错误信息。

注意事项: 前端校验和后端校验应保持一致。虽然前端 Vue3 提供了较好的用户体验,但后端校验是保障数据完整性的最后一道防线,不可省略。


实践 5:微服务架构下的模块拆分

说明: 如果使用 JeecgBoot 的微服务版本,应合理划分服务边界。不要将所有功能都堆积在 jeecg-system 模块中,应按业务领域拆分独立的服务。

实施步骤:

  1. 分析业务领域,将核心业务(如订单、库存)与基础管理(用户、角色)分离。
  2. 创建独立的微服务 Module,依赖 jeecg-boot-starter-cloud
  3. 配置独立的数据库或 Schema,保持数据隔离。
  4. 使用 Nacos 作为注册中心和配置中心,管理服务路由。
  5. 通过 @FeignClient 进行服务间调用,避免直接通过 HTTP 客户端硬编码 URL。

注意事项: 分布式事务处理较为复杂,应尽量避免跨服务的强一致性事务,优先采用最终一致性方案(如消息队列)。若必须使用 Seata 等分布式事务框架,需注意性能损耗。


实践 6:前端组件封装与复用

说明: JeecgBoot 提供了丰富的 Ant Design Vue 二次封装组件(如 JPopup, JDictSelectTag)。最佳实践是


性能优化建议

性能优化建议

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

说明: JeecgBoot 作为低代码平台,大量使用动态 SQL 和 Join 查询。若未对数据库进行针对性优化,随着数据量增长,复杂的关联查询(如系统自动生成的查询语句)极易成为性能瓶颈,导致页面加载缓慢。

实施方法:

  1. 索引优化:开启 MySQL 慢查询日志,定位执行时间超过 500ms 的 SQL 语句。针对 WHEREJOINORDER BY 涉及的字段建立联合索引,并遵循最左前缀原则。
  2. 分页优化:对于深度分页(如 LIMIT 100000, 10),利用 JeecgBoot 的框架特性,改用 “延迟关联” 或 “书签记录法” 进行重写。
  3. 字段精简:避免使用 SELECT *,在 Mapper XML 中明确指定需要的查询字段,减少网络传输和内存消耗。

预期效果: 典型业务场景下,查询响应时间从秒级降低至 100ms 以内,数据库 CPU 使用率下降 30%-50%。


优化 2:后端接口并发能力提升(异步化与缓存)

说明: 默认的同步阻塞式处理在处理高并发请求或耗时业务(如复杂报表生成、第三方接口调用)时,会快速耗尽 Tomcat 线程池,导致系统假死。

实施方法:

  1. 引入 Redis 缓存:利用 JeecgBoot 自带的 Redis 支持,对字典表、权限配置、极少变更的参数配置进行缓存(使用 @Cacheable)。
  2. 业务异步化:将非核心逻辑(如发送通知、记录日志)或耗时业务通过 Spring @Async 或消息队列进行异步解耦。
  3. 连接池调优:将默认的数据库连接池(如 Druid)最大连接数根据服务器性能进行调大(建议 maxActive 设为 CPU 核心数 * 2 + 1)。

预期效果: 系统吞吐量(QPS)提升 2-5 倍,高并发下的接口超时率显著降低。


优化 3:前端首屏加载与渲染性能优化

说明: JeecgBoot 前端基于 Vue 2/3,若未进行构建优化,打包后的体积巨大,导致首屏加载时间长,用户感知卡顿。

实施方法:

  1. 路由懒加载:确保所有非一级路由均采用动态 import 语法(component: () => import('@/views/...')),按需加载。
  2. CDN 资源分离:将 vueechartsantd 等大型依赖库剥离,改用 CDN 外链引用,减少 vendor.js 体积。
  3. Gzip 压缩:在 Nginx 配置中开启 gzip on;,对 JS/CSS 文件进行压缩传输。

预期效果: 首屏加载时间(FCP)减少 40%-60%,静态资源体积缩小 60% 以上。


优化 4:大列表数据渲染性能优化(虚拟滚动)

说明: 在使用 Ant Design Vue 的 Table 组件展示大量数据(如超过 1000 行)时,DOM 节点过多会导致浏览器严重卡顿,甚至页面崩溃。

实施方法:

  1. 服务端分页:强制使用后端分页,前端禁止一次性加载全量数据。
  2. 虚拟滚动:对于必须展示大量数据的场景,引入 ant-design-vue 的虚拟滚动属性(scroll 配合 vxe-table 或虚拟列表组件),仅渲染可视区域内的 DOM。

预期效果: 渲染 10,000 条数据时,页面滚动帧率保持在 60 FPS,内存占用降低 80%。


优化 5:代码生成器模板优化与去冗余

说明: JeecgBoot 的代码生成器虽然提高了开发效率,但生成的


学习要点

  • JeecgBoot是一款基于代码生成器的低代码开发平台,通过在线表单设计器快速生成前后端代码,大幅提升开发效率
  • 采用前后端分离架构,基于SpringBoot 2.x、Mybatis-plus、Ant Design Vue/Vue3等技术栈,技术栈成熟且社区活跃
  • 内置强大的代码生成器,支持单表、树表、主子表等多种业务场景的代码生成,可自定义表单和报表模板
  • 提供完善的权限管理系统(RBAC),支持用户、角色、菜单、部门等多维度权限控制,满足企业级应用需求
  • 集成工作流引擎(Flowable),支持可视化流程设计,可快速实现审批流等复杂业务流程
  • 内置丰富的开箱即用功能,如数据字典、日志管理、系统监控、定时任务等,减少基础功能开发工作量
  • 支持微服务架构升级,可无缝集成Spring Cloud、Nacos等微服务组件,适应大型分布式系统开发需求

学习路径

学习路径

阶段 1:环境搭建与基础认知

学习内容:

  • JeecgBoot 的技术架构与核心特性(低代码、代码生成器)
  • 开发环境配置(JDK 1.8+, Node.js, Maven, Redis, Nginx)
  • 后端项目启动与运行
  • 前端项目(Ant Design Vue)启动与运行
  • 熟悉官方示例Demo的基本功能

学习时间: 3-5天

学习资源:

  • JeecgBoot 官方文档 - 快速入门章节
  • B站搜索:JeecgBoot 环境搭建教程
  • 官方 GitHub Wiki

学习建议: 务必亲手搭建本地环境,不要只看文档。确保能成功访问系统首页并登录后台管理系统,这是后续学习的基石。


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

学习内容:

  • 在线表单设计与表单构建器
  • 代码生成器的使用流程(单表、一对主子表、树表)
  • 生成代码的逆向工程与导入
  • 基础 CRUD 功能的增删改查
  • 权限管理(角色分配、菜单权限、按钮权限)
  • 数据字典的使用

学习时间: 1-2周

学习资源:

  • 官方文档 - 代码生成器使用指南
  • JeecgBoot 官方在线演示环境
  • 社区实战案例:如何通过代码生成器开发一个简单的增删改查模块

学习建议: 重点掌握“Online Coding”模式。尝试设计一张数据库表,通过代码生成器生成前后端代码,并在本地运行调试,理解生成的代码结构。


阶段 3:前端开发与定制化

学习内容:

  • Ant Design Vue 组件库的深入使用
  • JeecgBoot 前端目录结构解析
  • 常用封装组件的使用
  • 前端路由配置与菜单配置
  • 接口请求封装
  • 页面布局与样式定制

学习时间: 2-3周

学习资源:

  • Ant Design Vue 官方文档
  • Vue.js 官方文档(Vue 2.x 或 Vue 3.x,视版本而定)
  • JeecgBoot 前端源码阅读

学习建议: 不要局限于使用现成组件,尝试修改生成的页面代码,调整布局或新增自定义交互。理解前端如何通过 API 与后端交互。


阶段 4:后端深入与业务逻辑扩展

学习内容:

  • Spring Boot 核心注解与配置
  • MyBatis-Plus 的使用与高级查询
  • 自定义接口开发(Controller, Service, Mapper)
  • AOP 切面编程与日志处理
  • 数据校验与异常处理
  • SQL 性能优化与索引优化

学习时间: 3-4周

学习资源:

  • Spring Boot 官方参考文档
  • MyBatis-Plus 官方文档
  • JeecgBoot 后端源码分析

学习建议: 在生成的代码基础上进行扩展,例如添加复杂的业务逻辑、编写自定义 SQL 查询。学习如何利用 JeecgBoot 提供的基础类来简化开发。


阶段 5:系统架构、部署与源码级掌握

学习内容:

  • 微服务架构 的原理与配置(如使用 JeecgBoot Cloud 版本)
  • 分布式事务与缓存处理
  • Docker 容器化部署
  • Nginx 反向代理与负载均衡配置
  • 系统安全机制(JWT, Shiro 或 Spring Security)
  • 二次开发规范与源码贡献流程

学习时间: 4周以上

学习资源:

  • Spring Cloud Alibaba 学习文档
  • Docker 官方文档
  • JeecgBoot 微服务版部署文档
  • 源码分析专栏文章

学习建议: 此时应具备独立设计复杂系统的能力。尝试阅读 JeecgBoot 的核心源码,理解其设计模式。尝试搭建一个微服务集群环境并进行部署,达到精通水平。


常见问题

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

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

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,开源框架目前主要采用“前后端分离”的架构。其核心使命是解决 Java 项目中 80% 的重复工作,让开发者更多关注业务逻辑。

它主要解决了以下问题:

  1. 高重复性工作:通过 Online 代码生成器,可以在线生成单表、树表、一对多等复杂的 CRUD(增删改查)功能,包括前端 Vue 页面和后端 Java 代码。
  2. 权限控制复杂:内置了强大的权限系统(基于 RBAC 和 Shiro/Security),支持数据权限(部门、个人等)和按钮权限控制。
  3. 开发效率低:提供了丰富的开箱即用组件,如用户上传、Excel 导入导出、打印、报表等,无需从零搭建。
  4. 技术栈整合难:完美整合了主流技术栈(如 SpringBoot 2.x/3.x, Vue3, Ant Design Vue 等),降低了新手的学习门槛。

2: JeecgBoot 的技术栈构成是什么?支持 JDK 8 吗?

2: JeecgBoot 的技术栈构成是什么?支持 JDK 8 吗?

A: JeecgBoot 采用主流的“前后端分离”架构,具体技术栈如下:

  • 后端
    • 基础框架:Spring Boot(目前主流版本支持 2.x 和 3.x)。
    • 持久层:MyBatis-Plus(极大地简化了 DAO 层操作)。
    • 安全框架:Spring Security 或 Apache Shiro(JeecgBoot 对此做了深度封装)。
    • 缓存/消息:Redis、RabbitMQ 等。
    • 代码生成:基于 Freemarker 或 Velocity 模板引擎。
  • 前端
    • 框架:Vue 3.0 + TypeScript + Vite。
    • UI 组件库:Ant Design Vue。

关于 JDK 版本: JeecgBoot 对 JDK 版本的支持取决于其依赖的 Spring Boot 版本。

  • 如果是基于 Spring Boot 2 的 JeecgBoot 版本,完全支持 JDK 8
  • 如果是基于 Spring Boot 3 的最新版本,通常要求 JDK 17 及以上。
  • 社区和企业版通常会维护一段时间,建议开发者根据项目环境选择合适的 JeecgBoot 版本。

3: 如何使用 JeecgBoot 的代码生成器(Online 代码生成)?

3: 如何使用 JeecgBoot 的代码生成器(Online 代码生成)?

A: 代码生成是 JeecgBoot 的核心功能,操作流程非常简便,通常分为以下几步:

  1. 数据库建表:在数据库中创建一张业务表,并设计好字段(建议字段注释要规范,因为生成器会读取注释)。
  2. 系统配置:登录 JeecgBoot 系统,进入“系统开发”菜单下的“Online 表单开发”或“代码生成器”模块。
  3. 导入表结构:点击导入,系统会自动读取数据库中的表结构。
  4. 配置表单属性
    • 字段配置:设置每个字段在前端是显示为输入框、下拉框、日期选择器还是上传组件。
    • 表单布局:调整字段的排列顺序和校验规则(如必填、唯一性校验)。
    • 查询配置:配置列表页的查询条件(如模糊查询、大于小于查询)。
  5. 生成代码:点击“生成代码”按钮,系统会生成一个压缩包。
  6. 代码集成:将压缩包中的前端代码解压到前端项目的 src/views 目录下,后端代码解压到后端项目的对应包路径下,重启后端服务即可访问。

4: JeecgBoot 的“低代码”能力如何?是否支持自定义逻辑?

4: JeecgBoot 的“低代码”能力如何?是否支持自定义逻辑?

A: JeecgBoot 的定位是“低代码 + 智能开发”,它具备强大的低代码能力,同时也保留了极高的灵活性:

  1. Online 在线表单:对于简单的增删改查,甚至不需要生成代码,直接通过 Online 在线配置(拖拽式配置表单、列表、查询条件)即可发布使用,无需重启服务。
  2. Online 报表:支持通过 SQL 配置动态生成报表,无需编写后端接口。
  3. 自定义逻辑
    • Java 代码:生成的代码是完全标准的 Spring Boot 代码,开发者可以直接在生成的 Controller、Service 或 Mapper 中编写复杂的业务逻辑,这与手写代码没有任何区别。
    • Groovy 脚本:部分版本或模块支持通过 Groovy 脚本编写业务逻辑,实现热部署,无需重启。
    • 前端扩展:前端基于 Vue,生成的组件支持插槽和事件重写,开发者可以轻松覆盖默认逻辑。 因此,它既适合快速搭建基础功能,也支持深度定制

思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**: 快速启动与代码生成实践

基于 JeecgBoot 的默认配置,成功启动前后端项目。随后,使用 Online 代码生成器(或系统自带的代码生成功能)针对一张单表(例如 sys_log 或自定义的一张简单的 demo 表)生成完整的 CRUD(增删改查)代码,并将其集成到菜单中,实现一个基础的数据管理页面。

提示**:


实践建议

基于 JeecgBoot 作为“AI 低代码平台”的定位及其强大的代码生成器特性,以下是针对实际开发和企业级落地的 6 条实践建议:

1. 深度定制代码生成器模板,而非直接修改生成代码

JeecgBoot 的核心优势在于代码生成器,但很多开发者容易陷入“生成代码 -> 手写业务 -> 覆盖生成”的死循环。

  • 建议:不要直接修改生成的 Base 类(如 Entity 或 Mapper 的基类)。应该将代码生成器的模板路径配置在独立的 Git 分支或模块中。根据团队规范修改 Freemarker 模板,让生成器直接产出符合你们团队规范的代码(例如:自动加入审计字段、特定的注释风格、统一的异常处理)。
  • 陷阱:如果手动修改生成后的代码,下次业务变更重新生成时,你的手写逻辑会被覆盖。

2. 严格遵循“Online 低代码”与“硬编码开发”的边界

JeecgBoot 提供了 Online 在线表单和报表功能(无需开发),同时也支持代码生成。很多项目容易混淆两者,导致系统难以维护。

  • 建议
    • 使用 Online 低代码:针对简单的 CRUD(增删改查)、字典维护、配置类表单、以及临时的数据统计报表。这能最快响应需求变更。
    • 使用硬编码开发:针对复杂的业务逻辑、涉及多表事务、高性能要求或第三方接口对接的核心业务。
  • 最佳实践:对于 80% 的“撑场面”功能(如系统配置、简单的数据维护),强制使用 Online 低代码开发,将宝贵的编码精力集中在 20% 的核心业务流上。

3. AI 助手与知识库的私有化部署与数据清洗

JeecgBoot 现在集成了 AI 功能,但企业级应用最忌讳数据外泄。

  • 建议:在部署 AI 模块(如 AI 助手、知识库)时,务必配置本地或私有化的 LLM(大语言模型),而不是直接调用公网 API。在构建“知识库”时,不要直接把整个公司的 Wiki 文档丢进去。
  • 操作:先对文档进行清洗(去除无用的 HTML 标签、过时的信息),将数据切片并打上标签后再导入向量库。这样 AI 回答业务问题的准确率会显著提升,减少“幻觉”。

4. 谨慎使用全栈代码生成,前后端应适度解耦

虽然 JeecgBoot 支持前后端一键生成,但在大型项目中,前端和后端往往由不同团队维护,且迭代频率不同。

  • 建议:后端使用代码生成器生成 Service 和 VO(视图对象),前端仅生成基础的页面框架。对于复杂的交互页面,建议前端基于 Ant Design Vue 组件库手动封装,而不是完全依赖生成的代码。
  • 陷阱:如果前后端代码耦合过深(例如后端直接返回前端专用的 JSON 结构,而非 DTO),未来如果需要迁移端(例如开发小程序或移动端),后端接口将难以复用。

5. 权限控制的细粒度配置

JeecgBoot 自带了 Shiro 或 Spring Security 的封装,权限配置非常灵活,但也容易配错导致越权访问。

  • 建议
    • 菜单权限:用于控制页面入口。
    • 按钮权限:用于控制 API 接口访问(如删除、导出)。
    • 数据权限:这是企业应用的关键。务必利用 JeecgBoot 的“数据权限”配置功能(如按部门、按角色过滤数据),而不是在后端代码里写死 WHERE dept_id = ...
  • 最佳实践:在开发阶段就针对敏感接口(如批量删除、金额修改)编写单元测试,验证不同角色的权限是否生效。

6. 监控 MCP 与 AI 流程编排的性能

JeecgBoot 引入了 AI 流程编排和 MCP(模型上下文协议)插件,这通常涉及链式调用外部模型,耗时较长。

  • 建议

引用

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



站内链接

相关文章