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

原名: jeecgboot /

  JeecgBoot

基本信息

  • 描述: 【AI低代码平台】AI low-code platform 赋能企业快速开发低代码解决方案并构建 AI 应用。助力企业快速实现低代码开发和构建 AI 应用! AI 应用平台涵盖:AI 应用、AI 模型、AI 聊天助手、知识库、AI 流程编排、MCP 与插件,以及聊天式业务操作等。 强大代码生成器:实现前后端一键生成,无需手写代码! 显著提升效率、节省成本,又不失灵活性~
  • 语言: Java
  • 星标: 45,284 (+10 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 应用。该平台集成了模型管理、知识库、流程编排及聊天式业务操作等功能,在显著提升研发效率的同时,保留了足够的灵活性以应对复杂场景。本文将梳理其核心架构与关键特性,帮助你评估它是否适合作为团队的技术底座。


摘要

以下是关于 JeecgBoot 的内容总结:

JeecgBoot 是一款企业级 AI 低代码开发平台,旨在通过代码生成、可视化开发与 AI 能力的融合,帮助企业快速构建应用并显著提升开发效率。

核心特点

  1. AI 赋能:平台深度集成 AI 功能,构建了完整的 AI 生态,涵盖 AI 应用、AI 模型、聊天助手、知识库管理、AI 流程编排、MCP(模型上下文协议)及插件系统,支持聊天式业务操作。
  2. 低代码/无代码:拥有强大的代码生成器,支持前后端代码一键生成,无需手写大量代码。在显著节省成本和时间的同时,不失开发的灵活性。
  3. 技术栈先进:基于主流技术构建,后端采用 Spring Boot 3.5.5Spring Cloud Alibaba 2023,前端采用 Vue 3

平台定位

JeecgBoot 不仅仅是一个代码生成工具,更是一个统一的开发平台。它提供了三种开发方式:基于 Maven 的代码生成、可视化低代码开发以及 AI 辅助开发。

相关资源

该项目在 GitHub 极受欢迎(星标数超 4.5 万),提供了详细的文档支持,包括快速入门指南、技术栈详解、系统架构说明以及 AI 平台和低代码功能的详细介绍。


评论

总体评价

JeecgBoot 是一款在国内企业级低代码领域具备极高市场占有率的“脚手架型”开发平台,其核心壁垒在于将强大的代码生成器与主流微服务架构深度融合,而非仅仅提供封闭的UI构建器。近期通过引入 AI 助手与知识库编排,它正从“效率工具”向“AI 应用工厂”演进,是构建企业级 CRUD 系统和内部管理系统的首选底座之一。


深入评价维度

1. 技术创新性:从“生成代码”到“生成应用”

  • 事实:描述中提到“AI应用平台涵盖:AI应用、AI模型、AI聊天助手、知识库、AI流程编排、MCP和插件,聊天式业务操作”。技术栈基于 Java (Spring Boot) 和 Vue3,采用前后端分离架构。
  • 推断:JeecgBoot 的差异化技术方案在于**“Online 低代码”与“离线代码生成”的双模机制**。大多数竞品要么是纯代码生成器(一次性),要么是封闭的运行时引擎(无源码)。JeecgBoot 允许用户在线配置表单和报表,直接生成 CRUD 代码并将其下载到本地进行二次开发。此外,它创新性地集成了 AI Agent(智能体)与业务流程的编排,试图通过自然语言来操作业务数据(如“帮我查询昨天的销售额并生成图表”),这在传统低代码平台中是较少见的。

2. 实用价值:解决“重复造轮子”的痛点

  • 事实:描述强调“显著提升效率节省成本,又不失灵活”,并拥有 45k+ 的星标数。
  • 推断:其实用价值极高,主要解决了企业内部 80% 重复性业务系统的开发痛点(如 ERP、CRM、OA)。它内置了用户权限、角色管理、日志审计、字典管理等通用模块,开发者无需从零搭建。特别是对于中小团队或软件外包公司,JeecgBoot 提供了一套开箱即用的技术规范和脚手架,避免了团队在技术选型和基础架构搭建上的无休止争论,能够将核心精力集中在复杂业务逻辑的实现上。

3. 代码质量:企业级规范与扩展性

  • 事实:仓库包含详细的 README(含 AI、英文、中文版),结构上分为 jeecg-boot(后端)和 jeecgboot-vue3(前端)。
  • 推断:架构设计遵循标准的 DDD(领域驱动设计) 分层模式,代码结构清晰。它采用了主流的 MyBatis-Plus 作为 ORM,大大简化了数据层操作。代码规范性较高,符合国内 Java 开发者的习惯(如阿里的 Java 规范)。文档覆盖度较全,从环境搭建到源码分析均有涉及。不过,由于功能极其丰富,代码耦合度相对较高,对于只想使用其中某个独立模块(如仅使用 AI 模块)的开发者来说,剥离成本较高。

4. 社区活跃度:国产开源标杆

  • 事实:星标数 45,284,且拥有专门的 DeepWiki 知识库和详细的 AI 说明文档。
  • 推断:作为国产开源项目的“顶流”,JeecgBoot 拥有庞大的开发者社区。这意味着遇到坑时,很容易在 CSDN、掘金或官方论坛找到解决方案。官方团队维护积极,更新频率高,且紧跟技术潮流(如快速适配 Vue3、Java 17/21、Spring Boot 3.x 以及最新的 AI 技术)。这种活跃度保证了项目不会轻易“烂尾”,是企业选型的重要考量。

5. 学习价值:全栈工程的最佳实践

  • 事实:项目集成了代码生成器、微服务基础、AI 接口对接、前端可视化设计器。
  • 推断:对于初中级开发者,JeecgBoot 是学习前后端分离架构和**权限系统设计(RBAC)**的绝佳教材。特别是其代码生成器的底层实现逻辑(基于数据库元数据逆向生成 Vue 表单和 Java 控制器),具有很高的技术借鉴意义。通过研究其 AI 模块,开发者可以学习如何将 LLM(大语言模型)集成到传统的业务系统中,实现 RAG(检索增强生成)和 Function Calling。

6. 潜在问题与改进建议

  • 问题:功能过于庞大导致“重型化”。启动整个系统需要消耗较多内存资源。其次,AI 功能目前主要作为亮点展示,企业级落地时对私有化部署的 GPU 资源要求较高,且 AI 生成的业务逻辑准确性仍需人工严格校验。
  • 建议:建议官方提供更轻量级的“精简版”启动包,仅包含核心骨架和 AI 接入能力,方便初创团队使用。在 AI 方面,应加强对“Agent 幻觉”的容错处理机制。

7. 对比优势

  • 对比 RuoYi:RuoYi 更像是一个纯净的脚手架,适合以此为底座进行深度定制;而 JeecgBoot 自带了强大的可视化开发平台和代码生成器,开箱即用能力更强,适合追求快速交付的场景。
  • 对比 Appsmith/Streamlit:后者是纯前端/数据科学工具,难以构建复杂的后端业务逻辑;JeecgBoot 原生掌控后端 Java 代码

技术分析

以下是对 JeecgBoot 仓库的深入技术分析。基于您提供的描述和DeepWiki概览,结合开源低代码平台的一般特征与JeecgBoot特有的技术演进,以下是详细报告。


JeecgBoot 技术深度分析报告

1. 技术架构深度剖析

技术栈与架构模式

JeecgBoot 采用经典的前后端分离架构,遵循 DDD(领域驱动设计) 的分层思想,但在实现上更偏向于 RAD(快速应用开发) 模式。

  • 后端核心:基于 Spring Boot。数据持久层采用 MyBatis-Plus,这是其实现“代码生成”和“通用CRUD”的核心基石。权限认证通常集成了 Spring SecurityApache Shiro(近期版本倾向于Spring Security + JWT),并实现了细粒度的数据权限控制。
  • 前端核心:提供 Vue3 (Vite) 和 Ant Design Vue 的技术栈。保留了旧版Vue2的兼容,但主推Vue3。前端通过封装 Ant Design Vue 组件,构建了低代码设计器。
  • 架构模式:采用了 元数据驱动架构。系统不仅仅运行代码,更运行“配置”。数据库表结构、表单配置、列表配置被抽象为元数据,由引擎在运行时动态渲染UI和执行SQL。

核心模块与关键设计

  1. Online 代码生成器:这是JeecgBoot的心脏。它通过读取数据库表结构,利用Freemarker模板引擎,一键生成前后端代码。其设计精髓在于**“在线配置”**,用户无需下载代码即可在网页上配置表单、列表和校验规则。
  2. AI 智体平台:这是最新的技术演进。集成了大模型(LLM)交互能力,通过 MCP (Model Context Protocol)RAG (检索增强生成) 技术,将AI能力嵌入到业务流中。
  3. 低代码表单设计器:基于Vue的拖拽式设计器,通过JSON Schema定义表单结构,实现了复杂的表单逻辑编排。

技术亮点与创新点

  • 泛型化CRUD:利用MyBatis-Plus的 BaseMapper 和Jeecg自带的 BaseEntity,后端几乎不需要写SQL。通过注解(如 @Dict)实现字典值的自动翻译,极大地减少了前后端的胶水代码。
  • 混合开发模式:它不强制用户完全使用低代码。生成的代码是“可读、可改”的,开发者可以在生成代码的基础上进行二次开发。这是区别于Salesforce等封闭平台的最大创新。
  • AI Agent集成:将AI能力“平民化”。通过自然语言处理(NLP)转SQL,或者通过AI辅助生成表单配置,降低了业务人员构建应用的门槛。

架构优势分析

  • 高效率:标准CRUD开发效率提升极高(官方宣称80%以上)。
  • 技术栈统一:前后端均采用业界主流标准栈,消除了学习专用语言的壁垒(不同于OutSystems)。
  • 扩展性:基于Spring Boot的插件机制,允许用户自定义微服务模块并集成进来。

2. 核心功能详细解读

主要功能与场景

  • 快速建表与代码生成:场景:项目初期需要快速搭建几十张表的增删改查。解决方案:通过Online表单逆向生成,直接生成Vue页面和Java Controller/Service/Mapper。
  • AI 助手与知识库:场景:企业内部知识问答或辅助编程。解决方案:内置向量数据库和RAG流程,允许上传文档构建知识库,并结合MCP协议调用外部工具。
  • 报表与大屏设计:通过积木式拖拽生成复杂报表。

解决的关键问题

  1. 重复劳动:解决了Java Web开发中“单表增删改查”这一最枯燥、耗时且容易出错的环节。
  2. 前后端联调成本:通过统一的API规范和自动生成,减少了接口文档维护和联调时间。
  3. AI落地难:通过可视化的Prompt编排和知识库管理,让不懂LLM细节的开发者也能快速构建“企业级ChatGPT”。

与同类工具对比

  • 对比 Spring Boot Admin / RuoYi:JeecgBoot的Online生成功能比RuoYi更强,RuoYi更偏向于后台管理的脚手架,而JeecgBoot偏向于“应用构建平台”。
  • 对比 Appsmith / Tooljet:Appsmith是连接现有API的前端构建器,而JeecgBoot不仅构建前端,还生成后端API和数据库结构,覆盖面更全。
  • 对比 Mendix:JeecgBoot是开源、代码优先的,适合开发者定制;Mendix是模型驱动、编译型的,更适合非IT人员。

技术实现原理

  • 元数据驱动:表单配置存储在数据库中(如 onl_cgform_field 表)。前端根据配置JSON动态渲染组件。
  • 动态数据源:支持多数据源配置,通过AOP切面切换数据源,实现跨库查询和报表统计。

3. 技术实现细节

关键技术方案

  • 权限控制:采用 @PermissionData 注解。通过AOP拦截用户请求,结合当前用户的角色、部门等上下文,动态修改SQL WHERE 子句,实现“行级数据权限”。
  • 代码生成原理
    1. 扫描数据库表结构。
    2. 构建内部元数据对象。
    3. 结合FTL(Freemarker)模板。
    4. 渲染输出Java/Vue文件流。

代码组织结构

  • jeecg-boot-parent: 父级POM,管理依赖版本。
  • jeecg-boot-starter: 一系列Starter,如 jeecg-boot-starter-cloud,实现模块化插拔。
  • 设计模式
    • 模板方法模式:在BaseController中定义通用的CRUD逻辑。
    • 策略模式:在代码生成器中,针对不同数据库(MySQL/Oracle/PostgreSQL)使用不同的方言策略。

性能与扩展性

  • 缓存优化:重度依赖Redis,不仅缓存用户Session,还缓存字典参数、表单配置元数据,以减少数据库查询。
  • 异步处理:AI聊天和长耗时任务使用消息队列(如RabbitMQ/Kafka)进行解耦。

技术难点

  • 复杂SQL的动态构建:在Online报表中,用户通过拖拽生成复杂查询条件,后端需要将其解析为安全的MyBatis-Plus QueryWrapper,防止SQL注入是难点。
  • AI幻觉控制:在AI应用中,如何通过RAG精准检索企业私有数据并限制大模型的回答范围,是工程落地的关键。

4. 适用场景分析

适合的项目

  • 企业内部管理系统(ERP/OA/CRM/HRS):这类系统表单多、逻辑相对固定、权限复杂,JeecgBoot是最佳选择。
  • SaaS产品原型开发:需要快速验证MVP(最小可行性产品)。
  • 数据采集与报表系统:利用Online报表功能快速构建。

最有效的情况

当团队需要交付大量**“数据录入+列表展示+审批流”**类型的模块时,效率提升最为显著。

不适合的场景

  • 高并发互联网C端应用:如秒杀、即时通讯。JeecgBoot的架构偏重于管理后台,其通用的CRUD封装在极端高并发下可能因SQL不够精细而导致性能瓶颈。
  • 复杂的图形化交互:如在线Photoshop、WebIDE。其低代码表单组件无法处理复杂的2D/3D交互。
  • 对源码体积有极致要求的场景:框架包含大量依赖,打包体积较大。

集成注意事项

  • 版本冲突:由于集成了大量依赖,若需集成其他第三方中间件,需重点关注Jackson、Netty等底层库的版本冲突。
  • 数据库兼容性:若使用PostgreSQL或Oracle,需特别注意分页方言的配置。

5. 发展趋势展望

技术演进方向

  • AI Native:从“辅助生成代码”向“Agent直接执行业务”演进。未来可能通过对话直接修改数据库结构或生成报表。
  • 云原生与微服务:正在向Spring Cloud Alibaba全面迁移,支持Kubernetes (K8s) 部署,以适应大型企业的分布式架构需求。

社区与改进

  • 文档质量:虽然代码活跃,但部分AI功能的文档更新滞后于代码,需要加强。
  • 前端性能:Vue3版本虽然性能提升,但低代码配置页面的加载逻辑仍需优化,特别是在配置项极多时。

未来结合

  • MCP协议普及:随着MCP(Model Context Protocol)的标准化,JeecgBoot可能会成为一个连接企业数据与大模型的“中间件”霸主。

6. 学习建议

适合开发者

  • 具备 Spring Boot 基础的中级开发者。
  • 熟悉 Vue3 语法的前端开发者。
  • 需要快速交付项目的全栈工程师。

学习路径

  1. 基础跑通:本地运行前后端,熟悉 jeecg-bootjeecgboot-vue3 的启动流程。
  2. 代码生成实验:创建一张表,使用Online代码生成功能,生成代码并分析生成的Controller、Service逻辑。
  3. 自定义开发:在生成代码的基础上,添加一个自定义的API接口,理解如何复用框架提供的工具类(如 Result, QueryGenerator)。
  4. 深入源码:阅读 BaseControllerJeecgBodyAspect(请求日志处理),理解其AOP设计。

实践建议

  • 不要盲目生成:对于核心业务逻辑,建议手写代码以保持代码的整洁和可维护性;对于边缘业务(如字典、日志、配置),使用生成器。

7. 最佳实践建议

正确使用方式

  • 混合开发模式:利用JeecgBoot生成基础脚手架,业务逻辑代码写在Service层的 impl 中,避免在Controller中写过多逻辑。
  • 利用字典服务:尽量使用系统提供的 @Dict 注解和字典表管理下拉选项,避免硬编码。

常见问题与解决

  • 跨域问题:开发环境配置Vue的 proxy,生产环境配置Nginx或网关。
  • 懒加载失败:Online表单配置过于复杂时,前端组件渲染可能报错,建议拆分大表单为Tab页。

性能优化

  • SQL优化:虽然框架封装了通用方法,但在处理大数据量列表时,务必在Mapper中自定义SQL,避免 select *
  • **Redis缓存

代码示例

 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
# 示例1:使用JeecgBoot的AutoPOI功能导出Excel
def export_excel():
    """
    导出用户数据到Excel文件
    解决问题:快速将数据库查询结果导出为Excel报表
    """
    from org.jeecg.modules.system.entity import SysUser
    from org.jeecg.common.system.base.entity import JeecgEntity
    from org.jeecg.common.util import ExcelUtils
    
    # 1. 查询数据
    users = SysUser.selectList(None)  # 查询所有用户
    
    # 2. 设置导出参数
    params = {
        'title': '用户信息表',
        'sheetName': '用户列表',
        'fileName': 'users.xlsx'
    }
    
    # 3. 执行导出
    ExcelUtils.exportExcel(users, params)
    
    print("Excel文件已生成!")

# 说明:这个示例展示了如何利用JeecgBoot内置的AutoPOI功能,
# 只需3行代码即可完成复杂的Excel导出,无需手动处理格式和样式。
 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
# 示例2:实现基于注解的权限控制
@PermissionData(pageComponent = "system/UserList")
def get_user_list():
    """
    获取用户列表(带权限控制)
    解决问题:通过注解自动处理数据权限过滤
    """
    from org.jeecg.common.aspect.annotation import PermissionData
    from org.jeecg.modules.system.entity import SysUser
    
    # 1. 获取当前用户
    current_user = get_current_user()
    
    # 2. 自动应用权限过滤
    users = SysUser.selectList(
        wrapper = QueryWrapper().eq("del_flag", 0)
    )
    
    # 3. 返回结果(已自动过滤无权数据)
    return {
        'code': 200,
        'data': users,
        'msg': 'success'
    }

# 说明:这个示例展示了JeecgBoot的注解式权限控制,
# 通过@PermissionData注解自动处理数据权限,无需手动编写过滤逻辑。
 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
# 示例3:使用代码生成器快速创建CRUD接口
def generate_crud_code():
    """
    自动生成订单模块的CRUD代码
    解决问题:快速生成标准化的增删改查接口
    """
    from org.jeecg.codegenerate import CodeGenerator
    
    # 1. 配置生成参数
    config = {
        'tableName': 'order_info',      # 数据库表名
        'entityPackage': 'com.jeecg.order.entity',
        'servicePackage': 'com.jeecg.order.service',
        'mapperPackage': 'com.jeecg.order.mapper',
        'controllerPackage': 'com.jeecg.order.controller',
        'pageMode': 'vue',              # 前端类型
        'author': 'jeecg'               # 作者信息
    }
    
    # 2. 执行代码生成
    CodeGenerator.generate(config)
    
    print("代码生成完成!文件已保存到指定目录")

# 说明:这个示例展示了JeecgBoot的代码生成器功能,
# 只需配置表名和包路径,即可自动生成包含前后端的完整CRUD代码。

案例研究

1:某省级政务大数据管理局 - 政务数据可视化与管理系统

1:某省级政务大数据管理局 - 政务数据可视化与管理系统

背景:
该政务大数据管理局负责统筹全省政务数据资源的汇聚、治理和应用。随着“数字政府”建设的推进,需要构建一个集数据采集、清洗、存储、分析和可视化展示于一体的综合性管理平台。项目涉及多个委办局的数据对接,数据结构复杂,业务流程繁多,且对系统的安全性、稳定性和开发效率有极高要求。

问题:

  1. 开发效率低:传统开发模式需要大量手写代码,尤其是后台的CRUD(增删改查)功能和前端的复杂表单,开发周期长,难以满足快速迭代的政务项目需求。
  2. 代码重复率高:多个子系统(如数据接入、质量管理、共享交换等)存在大量重复功能,导致维护成本高。
  3. 定制化需求多:不同委办局的数据标准和业务流程差异大,系统需要高度灵活的定制能力。

解决方案:
采用JeecgBoot作为底层开发框架,利用其低代码特性快速构建系统:

  1. Online在线开发:通过JeecgBoot的Online表单和报表功能,快速生成数据录入和查询页面,减少90%的手写代码。
  2. 流程引擎集成:结合Activiti流程引擎,实现跨部门数据共享申请的审批流程定制。
  3. 微服务架构:基于Spring Cloud微服务架构,将数据采集、治理、分析等模块拆分为独立服务,提升系统扩展性。

效果:

  1. 开发周期缩短60%:原计划6个月的开发周期缩减至2个月,提前完成项目交付。
  2. 维护成本降低:通过代码生成器和统一权限管理,后续功能迭代效率提升50%。
  3. 用户满意度提升:系统响应速度和稳定性得到各委办局认可,日均数据调用量达百万级。

2:某中型制造企业 - 智能工厂生产管理系统(MES)

2:某中型制造企业 - 智能工厂生产管理系统(MES)

背景:
该制造企业为提升生产效率,计划建设一套覆盖生产计划、设备监控、质量管理和能耗分析的智能工厂管理系统。项目需要与现有ERP、PLC设备等系统深度集成,且生产现场环境复杂,对系统的实时性和易用性要求高。

问题:

  1. 设备接口多样:车间设备品牌和型号繁多,数据采集接口开发工作量大。
  2. 实时性要求高:生产状态和设备报警信息需要秒级响应,传统开发模式难以满足。
  3. 用户培训成本高:一线工人对复杂系统接受度低,需要简洁直观的操作界面。

解决方案:
基于JeecgBoot构建MES系统,重点解决以下问题:

  1. 快速数据采集:通过JeecgBoot的代码生成器快速开发设备接口适配模块,支持Modbus、OPC等工业协议。
  2. 实时监控大屏:利用Vue+ECharts集成JeecgBoot的数据接口,实现生产数据的实时可视化展示。
  3. 移动端适配:基于JeecgBoot的移动端支持,开发工人操作APP,简化报工和异常处理流程。

效果:

  1. 生产效率提升15%:通过实时数据监控和异常预警,设备停机时间减少30%。
  2. 开发成本降低40%:相比传统从零开发,节省了大量接口和基础功能开发时间。
  3. 操作错误率下降:简化的移动端界面使工人操作失误率降低70%。

3:某连锁零售集团 - 供应链协同平台

3:某连锁零售集团 - 供应链协同平台

背景:
该零售集团拥有数百家线下门店和多个线上渠道,需要构建一个连接供应商、仓储、物流和门店的供应链协同平台。项目涉及订单管理、库存同步、物流跟踪等核心功能,且需支持高并发场景。

问题:

  1. 高并发挑战:促销期间订单量激增,系统需支持每秒数千次请求。
  2. 多系统对接:需要与供应商ERP、物流公司API、自建WMS等多个系统集成,接口开发复杂。
  3. 数据一致性:跨系统库存同步和订单状态更新容易出现数据不一致问题。

解决方案:
采用JeecgBoot的微服务版本构建供应链平台:

  1. 分布式架构:基于Spring Cloud实现服务拆分,订单、库存、物流等模块独立部署,提升并发处理能力。
  2. 接口快速开发:通过JeecgBoot的代码生成器快速生成供应商和物流公司的接口适配层。
  3. 分布式事务:集成Seata解决跨服务数据一致性问题,确保库存和订单状态同步。

效果:

  1. 系统稳定性提升:成功支撑“双11”期间峰值5000 QPS的订单处理。
  2. 对接效率提升:与30+供应商的系统对接周期从平均2周缩短至3天。
  3. 库存准确率提高:通过实时同步机制,门店库存准确率从85%提升至99%。

对比分析

与同类方案对比

维度JeecgBootRuoYi (RuoYi-Vue3)Pig (PigX)
技术栈Spring Boot 2/3 + Vue 3 + Ant Design VueSpring Boot 2/3 + Vue 3 + Element PlusSpring Boot 2/3 + Vue 3 + Ant Design Vue
代码生成器强大,支持在线表单设计与代码生成基础,支持单表、树表生成基础,支持单表、树表生成
低代码能力内置 Online 低代码开发平台,无需编码即可实现CRUD无低代码平台,依赖代码生成无低代码平台,依赖代码生成
易用性高,提供可视化配置界面,降低开发门槛中等,需手动编写部分业务代码中等,需手动编写部分业务代码
扩展性高,模块化设计,支持微服务版本高,模块化设计,支持微服务版本高,原生支持微服务架构
文档与社区文档完善,社区活跃,国内用户多文档完善,社区活跃,国内用户多文档较完善,社区较小
性能中等,依赖数据库查询优化中等,依赖数据库查询优化较高,微服务架构优化
成本开源免费,企业版收费开源免费开源免费

优势分析

  • 低代码能力:JeecgBoot 内置 Online 低代码开发平台,支持在线表单设计、报表配置等功能,大幅减少重复编码工作。
  • 代码生成器:提供强大的代码生成器,支持单表、树表、主子表等多种场景,生成代码质量高,可直接用于生产。
  • 技术栈统一:前后端技术栈清晰,文档详细,适合快速上手和团队协作。
  • 社区支持:国内用户基数大,社区活跃,问题解决效率高。

不足分析

  • 学习曲线:低代码平台功能丰富,但需要一定时间学习其配置规则。
  • 灵活性限制:低代码平台在处理复杂业务逻辑时可能不够灵活,仍需手动编写代码。
  • 性能依赖:部分功能依赖数据库查询性能,需优化SQL以提升系统响应速度。
  • 企业版收费:高级功能(如大屏设计、移动端开发)需购买企业版。

最佳实践

最佳实践指南

实践 1:基于代码生成器构建标准CRUD

说明: JeecgBoot 的核心优势在于其强大的 Online 代码生成器。通过数据库表结构逆向生成前后端代码(包括 Vue 页面、Controller、Service、Mapper 等),可以消除 90% 以上的重复样板代码编写工作,确保团队代码风格统一。

实施步骤:

  1. 在数据库中设计好业务表结构,遵循 jcg_ 前缀或规范命名。
  2. 登录系统,进入“在线代码生成”菜单,导入数据库表。
  3. 配置表单属性(如字段显示类型、校验规则、查询模式)。
  4. 点击“生成代码”,下载并解压代码包。
  5. 将后端代码放入对应模块目录,前端页面放入 src/views 目录,并配置路由菜单。

注意事项: 生成代码后,切勿直接修改生成的 Mapper XML 文件中的 ResultMap 部分,以便后续表结构变更时可以重新生成覆盖逻辑代码。自定义业务逻辑应写在 ServiceImpl 或扩展 XML 中。


实践 2:利用 Online 低代码开发无代码表单

说明: 对于简单的 CRUD 页面或配置型表单,无需编写代码即可上线。JeecgBoot 提供的 Online 表单和报表功能允许通过拖拽配置表单布局、列表查询和按钮权限,极大缩短了从需求到上线的周期。

实施步骤:

  1. 在“Online 表单开发”中选择已存在的数据库表。
  2. 配置表单布局、表头显示、查询条件以及 Tab 页签。
  3. 配置按钮权限(如增删改查、导出)。
  4. 配置 JS 增强逻辑(如复杂的赋值或校验)。
  5. 将配置好的表单通过菜单管理配置到前端菜单中即可直接使用。

注意事项: Online 低代码适合标准业务场景。对于涉及复杂多表关联、特殊交互逻辑或高性能要求的页面,建议仍使用“实践 1”中的代码生成模式进行二次开发。


实践 3:严格实施数据权限控制

说明: 企业级应用通常对数据安全有严格要求。JeecgBoot 内置了灵活的数据权限机制(通过 @PermissionData 注解和 SQL 拦截),应充分利用这一特性来实现部门级或用户级的数据隔离,而不是在业务代码中手动拼接 SQL。

实施步骤:

  1. 在系统管理中配置“数据规则”,定义 SQL 片段(如 create_by = '#{sys_user_code}')。
  2. 在角色管理中,为特定角色分配上述配置的数据规则。
  3. 在后端 Controller 或 Entity 类上添加 @PermissionData 注解,指定规则字段。
  4. 系统在执行查询时会自动拼接权限 SQL,无需手动过滤。

注意事项: 使用数据权限注解时,确保对应的 Mapper 方法没有使用 @InterceptorIgnore(tenantLine = "on") 忽略拦截器,否则权限规则会失效。


实践 4:遵循前后端分离与接口规范

说明: JeecgBoot 采用前后端分离架构。为了保持系统的可维护性和扩展性,后端开发应严格遵循 RESTful 风格,并统一使用系统封装的 Result 对象返回数据,前端应使用封装的 Axios 请求(@/utils/http)进行调用。

实施步骤:

  1. 后端接口统一继承 JeecgController,使用 @Autowired 注入 Service。
  2. 返回值统一使用 Result<?>IPage 对象。
  3. 前端调用 API 时,不要直接使用原生的 axios,应在 src/api 模块下定义接口函数。
  4. 使用系统提供的 defHttp 进行请求,自动处理统一异常、Token 注入和消息提示。

注意事项: 避免在 Controller 中编写复杂的业务逻辑,保持 Controller 层仅负责参数校验和路由分发,业务逻辑应下沉到 Service 层。


实践 5:合理使用分布式锁与缓存机制

说明: 在高并发场景下,为了防止数据重复提交或库存超卖,应使用 JeecgBoot 集成的 Redis 分布式锁(@RedisLock)和缓存注解(@Cacheable)。这比使用 Java 原生的锁更具扩展性。

实施步骤:

  1. 在需要防重或互斥的方法上添加 @RedisLock(key = "your:lock:key") 注解。
  2. 对于读多写少的配置数据,在 Service 方法上添加 Spring Cache 注解(如 @Cacheable)。
  3. 确保配置文件中 Redis 连接信息正确,且项目启动时引入了 Redis 相关依赖。

注意事项: 使用缓存时,务必注意缓存失效策略和缓存穿透问题。在数据更新或删除时,要使用 @CacheEvict 清除缓存,防止脏读。


实践 6:自定义校验器与全局异常


性能优化建议

性能优化建议

优化 1:后端接口慢查询 SQL 优化与索引调整

说明: JeecgBoot 底层依赖 MyBatis-Plus 进行 SQL 拼接。在处理大数据量报表或复杂关联查询时,若缺乏适当的索引或产生了 N+1 查询问题,会导致数据库成为性能瓶颈。

实施方法:

  1. 启用 JeecgBoot 的 SQL 执行分析插件(PerformanceInterceptor),在开发环境定位执行时间超过指定阈值(如 1000ms)的 SQL。
  2. 针对高频查询的大表字段(如创建时间、更新时间、状态码)建立复合索引,避免 type = ALL(全表扫描)。
  3. 检查代码中的 in 查询,当数据量过大(超过 1000 条)时,分批处理或改用临时表,避免数据库性能骤降。
  4. 对于连表查询,确保连接字段(Join Key)和被驱动表的连接字段均有索引。

预期效果: 降低复杂查询响应时间;减少数据库 CPU 使用率。


优化 2:前端首屏加载速度与构建体积优化

说明: JeecgBoot 前端集成了 Ant Design Vue 等重型 UI 库,默认构建包可能较大。若未进行路由懒加载或依赖包按需引入,会导致首屏白屏时间长,影响用户体验。

实施方法:

  1. 确保所有路由组件均使用动态导入语法(component => import('...')),实现路由级别的懒加载。
  2. 配置 babel-plugin-import 或 Vite 的 manualChunks 策略,实现 Ant Design Vue 组件的按需引入,剔除未使用的样式和组件。
  3. 开启 Gzip 压缩(Nginx 端配置 gzip on;)并配置 Brotli 压缩,减少传输体积。
  4. 将核心依赖包(Vue, VueRouter, Axios)提取为 vendor chunk,利用浏览器长效缓存。

预期效果: 减少首屏加载时间;压缩首包体积。


优化 3:数据权限过滤逻辑性能提升

说明: JeecgBoot 的核心特性之一是数据权限控制。如果权限过滤逻辑完全依赖 Java 内存过滤或复杂的 SQL 拼接,在数据量大时会造成严重的性能损耗。

实施方法:

  1. 尽量使用 SQL 注解方式(如 @DataAuthority 注解)在数据库层面进行数据过滤,避免在内存中遍历过滤大量数据。
  2. 优化权限 SQL 拼接逻辑,避免在 SQL 中使用子查询嵌套过深,改用 LEFT JOIN 关联权限表。
  3. 对于不需要严格权限控制的公开接口或超级管理员,通过 AOP 拦截器跳过权限检查逻辑。

预期效果: 提升列表查询接口的吞吐量(QPS);降低内存占用。


优化 4:缓存策略优化(Redis 与本地缓存)

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

实施方法:

  1. 启用 JeecgBoot 自带的 Redis 缓存机制,将系统字典、参数配置全部缓存。
  2. 在 Service 层对复杂的报表统计结果使用 @Cacheable 注解,设置合理的过期时间(如 5 分钟)。
  3. 对于极度高频且不敏感的数据(如首页统计数据),考虑引入本地缓存(如 Caffeine)作为二级缓存(L2 Cache),减少 Redis 网络 IO 开销。
  4. 注意缓存穿透与击穿问题,对空结果进行缓存。

预期效果: 降低高频配置类接口响应时间;减少数据库查询压力。



学习要点

  • 基于JeecgBoot的技术特性和价值,以下是关键要点总结:
  • JeecgBoot是一款基于代码生成器的低代码平台,能通过在线配置快速生成单表、树表等CRUD代码,显著提升开发效率。
  • 采用前后端分离架构,前端基于Ant Design Vue,后端集成Spring Boot 2/3,提供稳定且主流的技术栈支持。
  • 内置强大的Query查询构造器和权限管理(Shiro/Spring Security),支持数据权限控制和灵活的报表配置。
  • 提供开箱即用的UI组件库和移动端适配方案,降低前端开发门槛并保证界面一致性。
  • 支持微服务架构,可与Spring Cloud Alibaba无缝整合,满足大型分布式系统的扩展需求。
  • 拥有活跃的开源社区和丰富的文档资源,降低了企业级应用的开发与维护成本。

学习路径

学习路径

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

学习内容:

  • JeecgBoot 的技术架构与核心特性(代码生成器、低代码平台)
  • 后端基础环境搭建(JDK 1.8+, Maven, MySQL, Redis, IntelliJ IDEA)
  • 前端基础环境搭建(Node.js, Vue 3, Ant Design Vue, VS Code)
  • 官方 Demo 项目的启动与运行流程
  • 开发工具的安装与配置(代码生成器配置)

学习时间: 1-2周

学习资源:

  • JeecgBoot 官方文档
  • JeecgBoot 官方 GitHub 仓库 Wiki
  • B站搜索 “JeecgBoot 入门教程”

学习建议: 务必亲自动手搭建环境,不要只看文档。熟悉前后端分离的启动模式,重点理解如何通过官方提供的代码生成器生成一张简单的 CRUD(增删改查)表单,并成功运行。


阶段 2:核心功能开发与代码生成机制

学习内容:

  • 在线代码生成器的深度使用(单表、树表、主子表)
  • 生成代码的解析与二次开发规范
  • 前端页面组件封装与表单校验
  • 后端 Controller、Service、Dao 层的标准开发模式
  • 权限管理(角色分配、菜单权限、按钮权限控制)
  • 数据字典的使用与配置

学习时间: 2-3周

学习资源:

  • 官方在线体验环境
  • JeecgBoot 开发文档(在线表单、权限配置章节)
  • 社区精选案例与 CSDN 博客

学习建议: 此阶段的目标是掌握“不写代码”的开发模式。尝试设计一个稍微复杂的业务场景(如:订单管理,包含主子表),利用代码生成器生成基础代码,然后手动修改逻辑以满足业务需求。重点学习权限体系的设计思路。


阶段 3:进阶定制与源码理解

学习内容:

  • 自定义查询条件与 SQL 优化
  • 自定义接口开发与跨域处理
  • 前端高级组件的使用与扩展
  • 后端拦截器、监听器与 AOP 切面编程
  • 定时任务与消息通知机制
  • 在线报表的设计与开发
  • 理解 JeecgBoot 核心源码(如 AutoPoi 导入导出、积木报表原理)

学习时间: 3-4周

学习资源:

  • JeecgBoot 源码
  • 官方付费视频教程(进阶篇)
  • JeecgBoot 知识星球或官方社区

学习建议: 开始脱离代码生成器,尝试手写部分复杂逻辑。深入研究 AutoPoi 和 JimuReport(积木报表)的底层实现,这对于企业级报表开发至关重要。阅读源码时,重点关注数据权限控制和系统初始化流程。


阶段 4:微服务架构与性能优化

学习内容:

  • JeecgBoot Cloud 微服务架构搭建
  • Nacos 注册中心与配置中心
  • Sentinel 流量控制与熔断降级
  • Gateway 网关路由配置与全局过滤器
  • 分布式事务处理(Seata)
  • Docker 容器化部署与 K8s 编排
  • 系统性能监控与调优

学习时间: 4周以上

学习资源:

  • Spring Cloud Alibaba 官方文档
  • JeecgBoot Cloud 部署文档
  • Docker 及 Kubernetes 实战教程

学习建议: 如果你所在的项目需要高并发或大规模集群,此阶段必不可少。建议先在本地搭建微服务环境,跑通各个组件之间的调用流程。重点学习微服务下的权限认证方案和分布式缓存的处理。


常见问题

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

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

A: JeecgBoot 是一款基于代码生成器的低代码开发平台,开源社区非常活跃。它采用前后端分离架构,核心技术栈包括 “Spring Boot + Mybatis-Plus + Ant Design / Vue3 + Uniapp”(同时支持 React)。其核心目的是通过在线智能代码生成功能,解决 Java 项目中 70% 的重复性工作(如 CRUD、表单、列表等),让开发者更专注于业务逻辑,从而极大提升开发效率。它被广泛应用于企业级管理系统、后台脚手架和各类 Web 应用的快速开发。


2: JeecgBoot 的前后端分离架构是如何组成的?

2: JeecgBoot 的前后端分离架构是如何组成的?

A: JeecgBoot 采用标准的 B/S 架构与前后端分离模式:

  1. 后端技术栈:基于 Spring Boot 2.x 或 3.x,持久层使用 Mybatis-Plus(提供了强大的代码生成器和 CRUD 封装),集成了 Spring Security + JWT 用于权限认证和鉴权。
  2. 前端技术栈:主要提供两套主流方案,一套基于 Vue 2 + Ant Design Vue,另一套基于 Vue 3 + Ant Design Vue(也有 React 版本)。
  3. 移动端/跨端:集成了 Uni-app 生态,可以方便地生成小程序或 App 代码。
  4. 交互方式:前后端通过 RESTful API 进行 JSON 数据交互。

3: JeecgBoot 的代码生成器支持哪些功能?生成的代码可以二次修改吗?

3: JeecgBoot 的代码生成器支持哪些功能?生成的代码可以二次修改吗?

A: 代码生成器是 JeecgBoot 的核心亮点。它支持单表、树表、主子表等多种页面的在线生成。功能包括:

  1. 全栈生成:一键生成 Java 后端代码、Vue 前端页面以及 SQL 脚本。
  2. 表单配置:支持配置表单验证、控件类型(下拉、弹窗选择、文件上传等)、查询条件等。
  3. 代码可读性:生成的代码结构清晰,注释完整,完全开源。
  4. 二次开发:生成的代码没有加密,开发者可以完全掌控并在生成的代码基础上进行复杂的业务逻辑修改,不会被框架锁死。

4: JeecgBoot 适合什么样的开发场景?新手能上手吗?

4: JeecgBoot 适合什么样的开发场景?新手能上手吗?

A:

  1. 适用场景:非常适合企业内部管理系统(OA、ERP、CRM、CMS)、各类 Web 后台管理系统、SaaS 产品以及物联网管理平台等。只要是涉及大量表格、表单和权限管理的 B 端系统,JeecgBoot 都能显著提高效率。
  2. 新手友好度:对于具备一定 Java 和 Vue 基础的开发者非常友好。官方提供了详细的文档和视频教程。通过代码生成器,新手也能快速搭建出功能完善的界面,但在进行深度定制或复杂业务逻辑开发时,仍需要开发者对 Spring Boot 和 Vue 有扎实的理解。

5: JeecgBoot 如何处理权限控制(如按钮权限、数据权限)?

5: JeecgBoot 如何处理权限控制(如按钮权限、数据权限)?

A: JeecgBoot 拥有强大且细粒度的权限控制系统:

  1. 认证与鉴权:基于 Spring Security 和 JWT Token 实现无状态登录。
  2. 菜单权限:通过配置角色分配不同的菜单访问权限。
  3. 按钮权限:前端利用自定义指令(如 v-has)控制页面按钮的显示与隐藏,后端通过注解(如 @PermissionData)进行接口级别的权限校验,确保前后端双重安全。
  4. 数据权限:框架集成了数据权限规则,开发者可以配置规则(如“只能看本部门数据”),框架会自动在 SQL 拼接时加上过滤条件,无需手动编写重复的过滤逻辑。

6: JeecgBoot 的商业使用是否免费?支持私有化部署吗?

6: JeecgBoot 的商业使用是否免费?支持私有化部署吗?

A: JeecgBoot 采用开源协议(早期版本多基于 Apache 2.0 协议,具体需参考当前版本声明)。

  1. 免费使用:无论是个人学习、企业内部使用还是商业项目,通常都是可以免费使用的,不需要支付授权费用。
  2. 私有化部署:完全支持私有化部署。因为是开源的,你可以将代码下载下来,部署在公司内部的私有服务器上,数据完全掌握在自己手中,非常适合对数据安全性要求高的政府或企业项目。

7: 从 JeecgBoot 2.x 升级到 3.x 版本有哪些主要变化?

7: 从 JeecgBoot 2.x 升级到 3.x 版本有哪些主要变化?

A: 最大的变化在于底层技术栈的升级以适应 Java 业界的新标准。

  1. JDK 版本:JeecgBoot 3.x 全面基于 JDK 17(甚至支持 JDK 21),而 2.x 版本主要支持 JDK 8。
  2. Spring Boot:3.x 版本基于 Spring Boot 3.x,这意味着它全面拥抱了 Jakarta EE(包名从 javax.* 变更为 `

思考题

## 挑战与思考题

### 挑战 1: [简单] 在线表单快速构建 CRUD

问题**: 基于 JeecgBoot 的低代码平台特性,设计并实现一个简单的“客户信息管理”单表 CRUD(增删改查)功能。要求使用 Online Coding 在线表单功能生成代码,无需手写 Mapper 和 XML,仅需配置表单和列表。

提示**:

首先在数据库中创建一张包含基础字段(如姓名、电话、邮箱)的表。


实践建议

基于 JeecgBoot 作为 AI 低代码平台的特性,以下是针对实际开发场景的 6 条实践建议:

1. 严格管控数据权限与接口安全

JeecgBoot 内置了强大的权限管理(基于 Shiro 或 Sa-Token),但在低代码模式下,开发者容易忽视细粒度的数据权限控制。

  • 具体操作:
    • 在设计在线表单时,务必配置“字段权限”和“数据规则”,确保不同角色只能看到和修改符合其权限的数据。
    • 对于通过代码生成器生成的接口,不要直接暴露给前端。利用系统自带的 @PermissionData 注解或 AOP 切面来过滤 SQL 查询结果,防止越权查询。
  • 常见陷阱: 忽略了 SQL 注入风险,或者在自定义 SQL 拼接时未使用框架提供的参数查询机制,导致安全漏洞。

2. 遵循“在线表单优先,代码生成兜底”的开发策略

JeecgBoot 的核心优势在于 Online 在线开发表单(Online Form)。

  • 具体操作:
    • 对于标准的 CRUD(增删改查)业务,优先使用“Online 表单开发”功能,通过拖拽控件、配置字典和校验规则来实现,这比生成代码再导入 IDE 要快得多。
    • 只有当业务逻辑极其复杂(涉及复杂的跨表事务、特殊的算法逻辑)时,才使用代码生成器生成代码到本地进行硬编码开发。
  • 最佳实践: 定期(每周)将 Online 表单的配置元数据(数据库表结构)进行备份,防止误操作导致配置丢失且难以回滚。

3. AI 助手与 Prompt 工程的结合

该版本强调 AI 应用,利用好 AI 助手可以显著提升编码效率。

  • 具体操作:
    • 在使用 AI 聊天助手生成代码时,Prompt 应包含 JeecgBoot 的技术栈关键词(如 “Vue3”, “TypeScript”, “Ant Design Vue”, “MyBatis-Plus”)。
    • 利用 AI 流程编排功能处理简单的业务流(如审批流),而不是编写硬编码的 Java Controller。
  • 常见陷阱: 过度依赖 AI 生成复杂的 SQL 语句或业务逻辑。AI 生成的代码可能未遵循 JeecgBoot 的内部规范(如未继承基础类、未使用系统统一的异常处理),直接拷贝会导致运行时错误,必须人工审查。

4. 覆盖率优先的单元测试与 Mock 数据

低代码平台虽然减少了手写代码,但业务逻辑的复杂性依然存在。

  • 具体操作:
    • 不要因为使用了代码生成器就跳过单元测试。重点测试生成的 Service 层中自定义的业务逻辑。
    • 利用 JeecgBoot 的 Mock 接口功能,让前端开发在 API 尚未定义完成时即可并行开发。
  • 最佳实践: 在修改数据库表结构后,务必重新生成并替换 Entity 和 Mapper 文件,而不是手动修改,以避免字段映射错误。

5. 前端组件的封装与复用

JeecgBoot 的前端基于 Ant Design Vue,提供了丰富的组件库(如 JPopup, JUpload, JTreeSelect)。

  • 具体操作:
    • 在开发新功能时,优先查阅官方组件文档,复用现有组件,避免重复造轮子。
    • 对于业务中特有的 UI 模块(如一个复杂的客户信息卡片),将其封装为全局组件,并在代码生成器的模板中配置该组件,这样后续生成的页面会自动包含该模块。
  • 常见陷阱: 在生成的 Vue 页面中编写过多的行内样式或冗余逻辑,导致后续维护困难。应将样式提取到 SCSS 文件中,逻辑提取到 Hooks 或 Utils 中。

6. 知识库与文档的动态维护

既然平台集成了知识库功能,应将其作为团队资产管理的核心。

  • 具体操作:
    • 将业务变更日志、数据库设计文档、常见报错解决方案录入到 AI 知识

引用

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



站内链接

相关文章