快速又不失灵活性的JeecgBoot框架

 简介JeecgBoot

开源界 "小普元" 超越传统商业平台。引领低代码开发模式 (OnlineCoding-> 代码生成器 -> 手工 MERGE),低代码开发同时又支持灵活编码, 可以帮助解决 Java 项目 70% 的重复工作,让开发更多关注业务。既能快速提高开发效率,节省成本,同时又不失灵活性。

🔥JeecgBoot—Vue3版前端源码,采用 Vue3.0+TypeScript+Vite+Ant-Design-Vue等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。 是JeecgBoot低代码平台的vue3技术栈的全新UI版本,功能强于vue2版。

GitHub - jeecgboot/jeecgboot-vue3

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。

GitHub - jeecgboot/jeecg-boot

技术特征

  • 采用最新主流前后分离框架(SpringBoot+Mybatis-plus+Ant-Design+Vue),容易上手;代码生成器依赖性低,灵活的扩展能力,可灵活实现二次开发;

  • 开发效率很高,采用代码生成器,单表数据模型和一对多 (父子表)、树列表等数据模型,增删改查功能自动生成,菜单配置直接使用(前端代码和后端代码都一键生成);

  • 代码生成器提供强大模板机制,支持自定义模板风格。目前提供四套风格模板(单表两套、一对多两套)

  • 封装完善的用户、角色、菜单、组织机构、数据字典、在线定时任务等基础功能。强大的权限机制,支持访问授权、按钮权限、数据权限、表单权限等

  • 零代码在线开发能力,在线配置表单、在线配置报表、在线配置图表、在线设计表单

  • 常用共通封装,各种工具类 (定时任务,短信接口,邮件发送,Excel 导入导出等), 基本满足 80% 项目需求

  • 简易 Excel 导入导出,支持单表导出和一对多表模式导出,生成的代码自带导入导出功能

  • 集成简易报表工具,图像报表和数据导出非常方便,可极其方便的生成图形报表、pdf、excel、word 等报表;

  • 采用前后分离技术,页面 UI 精美,针对常用组件做了封装:时间、行表格控件、截取显示控件、报表组件,编辑器等等

  • 查询过滤器:查询功能自动生成,后台动态拼 SQL 追加查询条件;支持多种匹配方式(全匹配 / 模糊查询 / 包含查询 / 不匹配查询);

  • 数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段

  • 在线配置报表(无需编码,通过在线配置方式,实现曲线图,柱状图,数据等报表)

  • 页面校验自动生成 (必须输入、数字校验、金额校验、时间空间等);

  • 提供单点登录 CAS 集成方案,项目中已经提供完善的对接代码

  • 表单设计器,支持用户自定义表单布局,支持单表,一对多表单、支持 select、radio、checkbox、textarea、date、popup、列表、宏等控件

  • 专业接口对接机制,统一采用 restful 接口方式,集成 swagger-ui 在线接口文档,Jwt token 安全验证,方便客户端对接

  • 接口安全机制,可细化控制接口授权,非常简便实现不同客户端只看自己数据等控制

  • 高级组合查询功能,在线配置支持主子表关联查询,可保存查询历史

  • 提供各种系统监控,实时跟踪系统运行情况(监控 Redis、Tomcat、jvm、服务器信息、请求追踪、SQL 监控)

  • 消息中心(支持短信、邮件、微信推送等等)

  • 集成 Websocket 消息通知机制

  • 提供 APP 发布方案:

  • 支持多语言,提供国际化方案;

  • 数据变更记录日志,可记录数据每次变更内容,通过版本对比功能查看历史变化

  • 平台 UI 强大,实现了移动自适应

  • 平台首页风格,提供多种组合模式,支持自定义风格

  • 提供简单易用的打印插件,支持谷歌、IE 浏览器等各种浏览器

  • 示例代码丰富,提供很多案例参考

  • 采用 maven 分模块开发方式

  • 支持菜单动态路由

  • 权限控制采用 RBAC(Role-Based Access Control,基于角色的访问控制)

技术架构

#### 开发环境- 语言:Java 8+ (小于17)- IDE(JAVA): IDEA (必须安装lombok插件 )- IDE(前端): Vscode、WebStorm、IDEA- 依赖管理:Maven- 缓存:Redis- 数据库脚本:MySQL5.7+  &  Oracle 11g & Sqlserver2017(其他数据库,[需要自己转](https://my.oschina.net/jeecg/blog/4905722))#### 后端- 基础框架:Spring Boot 2.6.6- 微服务框架: Spring Cloud Alibaba 2021.0.1.0- 持久层框架:MybatisPlus 3.5.1- 报表工具: JimuReport 1.5.2- 安全框架:Apache Shiro 1.8.0,Jwt 3.11.0- 微服务技术栈:Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Skywalking- 数据库连接池:阿里巴巴Druid 1.1.22- 日志打印:logback- 其他:autopoi, fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。#### 前端- Vue2版本:`Vue2.6+@vue/cli+AntDesignVue+Viser-vue+Vuex等`  [详细查看](https://github.com/jeecgboot/ant-design-vue-jeecg)
- Vue3版本:`Vue3.0+TypeScript+Vite+AntDesignVue+pinia+echarts等新方案` [详细查看](https://github.com/jeecgboot/jeecgboot-vue3)#### 支持库|  数据库   |  支持   |
| --- | --- |
|   MySQL   |  √   |
|  Oracle11g   |  √   |
|  Sqlserver2017   |  √   |
|   PostgreSQL   |  √   |
|   MariaDB   |  √   |
|   达梦、人大金仓   |  √   |## 微服务解决方案1、服务注册和发现 Nacos √2、统一配置中心 Nacos  √3、路由网关 gateway(三种加载方式) √4、分布式 http feign √5、熔断降级限流 Sentinel √6、分布式文件 Minio、阿里OSS √ 7、统一权限控制 JWT + Shiro √8、服务监控 SpringBootAdmin√9、链路跟踪 Skywalking   [参考文档](https://help.jeecg.com/java/springcloud/super/skywarking.html)10、消息中间件 RabbitMQ  √11、分布式任务 xxl-job  √ 12、分布式事务 Seata13、分布式日志 elk + kafka14、支持 docker-compose、k8s、jenkins15、CAS 单点登录   √16、路由限流   √

实践指南

后端项目

使用IntelliJ IDEA导入后端项目,并选择Maven做项目管理

自动搜索项目依赖

项目SDK选用JAVA JDK1.8.0_181,没有配置的可以在CSDN上找对应操作手册

导入项目后根据POM加载依赖

依赖加载完成后的项目结构

打开DB文件夹下面的升级说明做参考

# 版本升级方法> JeecgBoot属于平台级产品,每次升级改动较大,目前做不到平滑升级。### 增量升级方案
#### 1.代码合并本地通过svn或git做好主干,在分支上做业务开发,jeecg每次版本发布,可以手工覆盖主干的代码,对比合并代码;#### 2.数据库升级
- 从3.6.2+版本增加flyway自动升级数据库机制,支持 mysql5.7、mysql8; 
- 其他库请手工执行SQL, 目录: `jeecg-module-system\jeecg-system-start\src\main\resources\flyway\sql\mysql`
> 注意: 升级sql只提供mysql版本;如果有权限升级, 还需要手工角色授权,退出重新登录才好使。#### 3.兼容问题每次发版,会针对不兼容地方重点说明。

项目依赖和数据库初始化SQL都确认到位

项目结构
├─jeecg-boot-parent(父POM: 项目依赖、modules组织)
│  ├─jeecg-boot-base-core(共通模块: 工具类、config、权限、查询过滤器、注解等)
│  ├─jeecg-module-demo    示例代码
│  ├─jeecg-module-system  System系统管理目录
│  │  ├─jeecg-system-biz    System系统管理权限等功能
│  │  ├─jeecg-system-start  System单体启动项目(8080)
│  │  ├─jeecg-system-api    System系统管理模块对外api
│  │  │  ├─jeecg-system-cloud-api   System模块对外提供的微服务接口
│  │  │  ├─jeecg-system-local-api   System模块对外提供的单体接口
│  ├─jeecg-server-cloud           --微服务模块├─jeecg-cloud-gateway       --微服务网关模块(9999)├─jeecg-cloud-nacos       --Nacos服务模块(8848)├─jeecg-system-cloud-start  --System微服务启动项目(7001)├─jeecg-demo-cloud-start    --Demo微服务启动项目(7002)├─jeecg-visual├─jeecg-cloud-monitor       --微服务监控模块 (9111)├─jeecg-cloud-xxljob        --微服务xxljob定时任务服务端 (9080)├─jeecg-cloud-sentinel     --sentinel服务端 (9000)├─jeecg-cloud-test           -- 微服务测试示例(各种例子)├─jeecg-cloud-test-more         -- 微服务测试示例(feign、熔断降级、xxljob、分布式锁)├─jeecg-cloud-test-rabbitmq     -- 微服务测试示例(rabbitmq)├─jeecg-cloud-test-seata          -- 微服务测试示例(seata分布式事务)├─jeecg-cloud-test-shardingsphere    -- 微服务测试示例(分库分表)

连接MySQL数据库,其它数据库需要按操作手册进行对号入座

执行初始化数据库的SQL

问题处理

1071 - Specified key was too long; max key length is 767 bytes

主键key长度太长,超过了767字节。分析主键字段PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)以及utf8mb4最大支持4个字节长度,那么这三个字段相加*3的长度远超767字节就会出现这个问题。那么对于问题的处理就是增大索引长度限制。

CREATE TABLE `qrtz_blob_triggers` ( `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `BLOB_DATA` blob NULL, PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

MySQL的innodb_large_prefix参数是为了启用对较长的索引键前缀的支持。在旧版本的InnoDB存储引擎中,索引键前缀的长度限制是767字节,但在某些字符集(如UTF-8)下,这可能导致无法使用完整的索引长度。通过设置innodb_large_prefixon,可以将这个限制提升到3072字节。

InnoDB支持两种文件格式 Antelope和Barracuda:
Antelope :是5.6之前的文件格式,支持InnoDB表的COMPACT和REDUNDANT行格式,共享表空间默认为Antelope
Barracuda:是最新的文件格式,支持所有innodb行格式,包括最新的COMPRESSED和DYNAMIC行格式。

show variables like 'innodb_file_format';

set global innodb_file_format='Barracuda';

show variables like 'innodb_file_format';

在MySQL中,ROW_FORMAT是一个与InnoDB和MyISAM存储引擎相关的选项,它决定了数据在磁盘上的存储方式。对于InnoDB存储引擎,ROW_FORMAT可以影响性能、备份、恢复以及与其他数据库系统的兼容性。对于MyISAM存储引擎,它主要影响数据的存储方式和性能。

如果开启innodb_large_prefix,且Innodb表的存储格式为 DYNAMIC 或 COMPRESSED,则前缀索引最多可包含3072个字节,前缀索引也同样适用。对于上面的索引问题(120+200+200)*4=2080 < 3072,那么就可以创建索引成功,因此需要先开启前缀索引,执行命令如下:

SET GLOBAL INNODB_LARGE_PREFIX = ON;


show variables like 'innodb_large_prefix';

确认表的行格式ROW_FORMAT=DYNAMIC;
返回SQL创建

-- ----------------------------
-- Table structure for qrtz_blob_triggers
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers`

jeecg-boot数据库初始化成功后会出现121张数据表

接来下将Maven切换为生产模式prod环境

通过JEECG BOOT生命周期 INSTALL打包

拿到 jeecg-system-start-{版本号}.jar 包

生成的JAR包上传到应用服务器

并通过JAR方式后台启动项目

通过命令启动项目Window启动命令:
java -jar jeecg-system-start-3.7.0.jarLinux下后台进程启动命令:
nohup java -jar jeecg-system-start-3.7.0.jar >catalina.out 2>&1 &关掉项目:
ps -ef|grep java
kill 进程号 
(_)                          | |               | |_  ___  ___  ___ __ _ ______| |__   ___   ___ | |_ | |/ _ \/ _ \/ __/ _` |______| '_ \ / _ \ / _ \| __|| |  __/  __/ (_| (_| |      | |_) | (_) | (_) | |_ | |\___|\___|\___\__, |      |_.__/ \___/ \___/ \__|_/ |               __/ |                             |__/               |___/Jeecg  Boot Version: 3.7.0
Spring Boot Version: 2.7.18 (v2.7.18)
......

前端项目

安装前端项目依赖

dependencies:
+ @ant-design/colors 7.0.2
+ @ant-design/icons-vue 7.0.1
+ @iconify/iconify 3.1.1
+ @jeecg/online 3.7.0-beta
+ @tinymce/tinymce-vue 4.0.7
+ @traptitech/markdown-it-katex 3.6.0
+ @vue/shared 3.4.21
+ @vueuse/core 10.10.0
+ @zxcvbn-ts/core 3.0.4
+ ant-design-vue 4.1.2
+ axios 1.7.2
+ china-area-data 5.0.1
+ clipboard 2.0.11
+ codemirror 5.65.16
+ cron-parser 4.9.0
+ cropperjs 1.6.1
+ crypto-js 4.2.0
+ dayjs 1.11.10
+ dom-align 1.12.4
+ echarts 5.4.3
+ emoji-mart-vue-fast 15.0.2
+ enquire.js 2.1.6
+ event-source-polyfill 1.0.31
+ highlight.js 11.9.0
+ intro.js 7.2.0
+ lodash-es 4.17.21
+ lodash.get 4.4.2
+ markdown-it 14.0.0
+ markdown-it-link-attributes 4.0.1
+ md5 2.3.0
+ mockjs 1.1.0
+ nprogress 0.2.0
+ path-to-regexp 6.2.1
+ pinia 2.1.7
+ print-js 1.6.0
+ qrcode 1.5.3
+ qs 6.11.2
+ resize-observer-polyfill 1.5.1
+ showdown 2.1.0
+ sortablejs 1.15.2
+ tinymce 6.6.2
+ vditor 3.10.4
+ vue 3.4.21
+ vue-cropper 0.6.4
+ vue-cropperjs 5.0.0
+ vue-i18n 9.10.1
+ vue-infinite-scroll 2.0.2
+ vue-print-nb-jeecg 1.0.12
+ vue-router 4.3.3
+ vue-types 5.1.1
+ vuedraggable 4.1.0
+ vxe-table 4.6.17
+ vxe-table-plugin-antd 4.0.7
+ xe-utils 3.5.26
+ xss 1.0.14devDependencies:
+ @commitlint/cli 18.6.1
+ @commitlint/config-conventional 18.6.2
+ @iconify/json 2.2.218
+ @purge-icons/generated 0.10.0
+ @rys-fe/vite-plugin-theme 0.8.6
+ @types/codemirror 5.60.15
+ @types/crypto-js 4.2.2
+ @types/fs-extra 11.0.4
+ @types/inquirer 9.0.7
+ @types/intro.js 5.1.5
+ @types/jest 29.5.12
+ @types/lodash-es 4.17.12
+ @types/mockjs 1.0.10
+ @types/node 20.14.2
+ @types/nprogress 0.2.3
+ @types/qrcode 1.5.5
+ @types/qs 6.9.11
+ @types/showdown 2.0.6
+ @types/sortablejs 1.15.8
+ @typescript-eslint/eslint-plugin 6.17.0
+ @typescript-eslint/parser 6.17.0
+ @vitejs/plugin-vue 4.6.2
+ @vitejs/plugin-vue-jsx 3.1.0
+ @vue/compiler-sfc 3.4.4
+ @vue/test-utils 2.4.6
+ autoprefixer 10.4.19
+ commitizen 4.3.0
+ conventional-changelog-cli 4.1.0
+ cross-env 7.0.3
+ cz-git 1.8.0
+ czg 1.8.0
+ dotenv 16.3.1
+ eslint 8.56.0
+ eslint-config-prettier 9.1.0
+ eslint-define-config 2.1.0
+ eslint-plugin-jest 27.9.0
+ eslint-plugin-prettier 5.1.3
+ eslint-plugin-vue 9.26.0
+ esno 4.7.0
+ fs-extra 11.2.0
+ http-server 14.1.1
+ husky 8.0.3
+ inquirer 9.2.23
+ is-ci 3.0.1
+ jest 29.7.0
+ less 4.2.0
+ lint-staged 15.2.2
+ npm-run-all 4.1.5
+ picocolors 1.0.0
+ postcss 8.4.35
+ postcss-html 1.7.0
+ postcss-less 6.0.0
+ prettier 3.3.2
+ pretty-quick 4.0.0
+ rimraf 5.0.5
+ rollup 4.12.0
+ rollup-plugin-visualizer 5.12.0
+ stylelint 16.2.1
+ stylelint-config-prettier 9.0.5
+ stylelint-config-recommended 14.0.0
+ stylelint-config-recommended-vue 1.5.0
+ stylelint-config-standard 36.0.0
+ stylelint-order 6.0.4
+ ts-jest 29.1.4
+ ts-node 10.9.2
+ typescript 4.9.5
+ unocss 0.58.5
+ vite 5.2.13
+ vite-plugin-compression 0.5.1
+ vite-plugin-html 3.2.2
+ vite-plugin-mkcert 1.17.5
+ vite-plugin-mock 2.9.8
+ vite-plugin-optimize-persist 0.1.2
+ vite-plugin-package-config 0.1.1
+ vite-plugin-purge-icons 0.10.0
+ vite-plugin-svg-icons 2.0.1
+ vite-plugin-vue-setup-extend-plus 0.1.0
+ vue-eslint-parser 9.4.3
+ vue-tsc 1.8.27WARN  Issues with peer dependencies found
.
├─┬ stylelint-config-prettier 9.0.5
│ └── ✕ unmet peer stylelint@">= 11.x < 15": found 16.2.1
├─┬ vite-plugin-optimize-persist 0.1.2
│ └── ✕ unmet peer vite@^2.0.0: found 5.2.13
└─┬ vite-plugin-package-config 0.1.1└── ✕ unmet peer vite@^2.0.0: found 5.2.13

修改生产环境的后台服务地址

构建前端项目

更新服务器前端项目

相关配置文档

后台配置一个访问域名

  • nginx监听:80端口
  • 绑定域名(示例):api3.boot.jeecg.com
upstream api3.boot.jeecg.com {server 127.0.0.1:8080;}  server {listen       80;server_name  api3.boot.jeecg.com;location / {root   html;index  index.html index.htm;proxy_pass  http://api3.boot.jeecg.com;#ip remote_addrproxy_set_header X-Forwarded-Scheme  $scheme;proxy_redirect    off;     proxy_set_header  Host             $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;}}

Websocket配置

提醒: 有的版本nginx配置需要加上 Upgrade 和Connection 协议头,不然WebSocket会404

 #支持websocket得这么写,不然CentOS上可能失败# proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";

登录系统即可进行相关操作

根据业务需求,做出概念结构设计,完成E-R关系模型的逻辑结构,就可以通过前端设计出表格,系统可以据此自动生成后端JAVA代码和前端VUE代码。

Controller层,控制层,接收前端(View)传过来的参数进行业务操作,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。

Entity层,别名model层 /domain层,用于存放实体类,与数据库中数据表的属性值基本保持一致,实现set和get的方法。

Service层,存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库打交道的,它也是个接口,只有方法名字,具体实现在mapper.xml文件里,service是供我们使用的方法,一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。

Service层也可以分为三个方面:

      (a)接口:用来声明方法
      (b)继承实现接口
      (c)impl:接口的实现(将mapper和service进行整合的文件)

Mapper层,也可以称为DAO层,是数据库CRUD的接口,只有方法名,具体实现在mapper.xml文件中,对数据库进行数据持久化操作(把数据放到持久化的介质中,同时提供CRUD操作),在mybatis中方法主要与xxx.xml内相互一一映射。

VUE视图层,兼容VUE2、VUE3组合式API两种方式构建的视图。

├─首页
│  ├─首页(四套首页满足不同场景需求)
│  ├─工作台
├─系统管理
│  ├─用户管理
│  ├─角色管理
│  ├─菜单管理
│  ├─权限设置(支持按钮权限、数据权限)
│  ├─表单权限(控制字段禁用、隐藏)
│  ├─部门管理
│  ├─我的部门(二级管理员)
│  └─字典管理
│  └─分类字典
│  └─系统公告
│  └─职务管理
│  └─通讯录
│  └─对象存储
│  └─多租户管理
├─系统监控
│  ├─网关路由配置(gateway)
│  ├─定时任务
│  ├─数据源管理
│  ├─系统日志
│  ├─消息中心(支持短信、邮件、微信推送等等)
│  ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
│  ├─系统通知
│  ├─SQL监控
│  ├─性能监控
│  │  ├─监控 Redis
│  │  ├─Tomcat
│  │  ├─jvm
│  │  ├─服务器信息
│  │  ├─请求追踪
│  │  ├─磁盘监控
├─消息中心
│  ├─我的消息
│  ├─消息管理
│  ├─模板管理
├─积木报表设计器
│─报表示例
│  ├─曲线图
│  └─饼状图
│  └─柱状图
│  └─折线图
│  └─面积图
│  └─雷达图
│  └─仪表图
│  └─进度条
│  └─排名列表
│  └─等等
│─大屏模板
│  ├─作战指挥中心大屏
│  └─物流服务中心大屏
├─代码生成器(GUI)
│  ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
│  ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
│  ├─代码生成器模板(生成代码,自带excel导入导出)
│  ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
│  ├─高级查询器(弹窗自动组合查询条件)
│  ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
│  ├─平台移动自适应支持
│─常用示例
│  ├─自定义组件示例
│  ├─JVxeTable示例(ERP行业复杂排版效果)
│  ├─单表模型例子
│  └─一对多模型例子
│  └─打印例子
│  └─一对多内嵌示例
│  └─异步树Table
│  └─图片拖拽排序
│  └─图片翻页
│  └─图片预览
│  └─PDF预览
│─封装通用组件 
│  ├─行编辑表格JVxeTable
│  └─省略显示组件
│  └─时间控件
│  └─高级查询 (未实现)
│  └─用户选择组件
│  └─报表组件封装
│  └─字典组件
│  └─下拉多选组件
│  └─选人组件
│  └─选部门组件
│  └─通过部门选人组件
│  └─封装曲线、柱状图、饼状图、折线图等等报表的组件(经过封装,使用简单)
│  └─在线code编辑器
│  └─上传文件组件
│  └─树列表组件
│  └─表单禁用组件
│  └─等等
│─更多页面模板
│  └─Mock示例(子菜单很多)
│  └─页面&导航(子菜单很多)
│  └─组件&功能(子菜单很多)
├─高级功能
│  ├─支持微前端
│  ├─提供CAS单点登录
│  ├─集成Websocket消息通知机制
│  ├─支持第三方登录(QQ、钉钉、微信等)
│  ├─系统编码规则
├─Online在线开发(低代码)
│  ├─Online在线表单 - 功能已开放
│  ├─Online代码生成器 - 功能已开放
│  ├─Online在线报表 - 功能已开放
│  ├─Online在线图表(暂未开源)
│  ├─多数据源管理
│─流程模块功能 (暂未开源)
│  ├─流程设计器
│  ├─表单设计器
│  ├─大屏设计器
│  ├─门户设计/仪表盘设计器
│  └─我的任务
│  └─历史流程
│  └─历史流程
│  └─流程实例管理
│  └─流程监听管理
│  └─流程表达式
│  └─我发起的流程
│  └─我的抄送
│  └─流程委派、抄送、跳转
│  └─OA办公组件
└─其他模块 └─更多功能开发中

JeecgBoot 前端Vue3文档

「企业级低代码平台」前端开发文档,采用 Vue3.0+TypeScript+Vite+Ant-Design-Vue等最新技术栈,二次封装各种UI组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。

JeecgBoot 后端开发文档

「企业级低代码平台」后端开发文档,采用SpringBoot 2.x,SpringCloud,Mybatis,Shiro,JWT等微服务架构。强大的代码生成器让前后端代码一键生成,无需写任何代码!支持SAAS应用。

AutoPoi技术文档

AutoPOI 功能如同名字auto,追求的就是自动化,让一个没接触过poi的人员,可以傻瓜化的快速实现Excel导入导出、Word模板导出、可以仅仅5行代码就可以完成Excel的导入导出。

JimuReport 积木报表文档

JimuReport 积木报表,顾名思义像搭建积木一样设计报表!涵盖大屏设计器、表单打印设计器、报表设计器、图表设计器等,此产品更多侧重数据处理,数据分组、多表头、主子表、单据打印排版等。

仪表盘设计器文档

一款免费数据可视化分析工具,支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表和门户设计,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。

MiniDao文档

一款轻量级JAVA持久层框架,采用 SpringJdbc + freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力。

参见:

JeecgBoot 文档中心

登录演示平台 - JeecgBoot

ChatGPT AI助手 - JeecgBoot 文档中心

JeecgBoot低代码开发—Vue3版前端入门教程_哔哩哔哩_bilibili

Online代码生成 - JeecgBoot 文档中心

开源低代码平台,JeecgBoot v3.7.0 里程碑版本发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 智能指针:unique_ptr

深刻理解一个原理的方法之一就是去自我实现一个&#xff0c;上代码&#xff1a; 1 自定义unique_ptr #include <iostream> #include <utility>template<typename T> class unique_ptr { private:T * ptr_resource nullptr;public:explicit unique_ptr(T* …

面试官:JavaScript执行机制中的闭包?

前言 JavaScript 中的闭包指的是一个函数以及其捆绑的周边环境状态的引用的组合。闭包可以让开发者从内部函数访问外部函数的作用域&#xff0c;即使外部函数已经执行完毕 今天我们通过JavaScript执行机制来聊聊闭包 正文 首先来分析这段代码的执行机制&#xff0c;这段代码…

详细解读“找不到mfc140u.dll无法继续执行代码”问题

当你打开某个软件或者运行游戏&#xff0c;系统提示mfc140u.dll丢失&#xff0c;此时这个软件或者游戏根本无法运行。其实&#xff0c;mfc140u.dll是动态库文件&#xff0c;它是VS2010编译的软件所产生的&#xff0c;如果电脑运行程序时提示缺少mfc140u.dll文件&#xff0c;程序…

PHP 8.4有哪些新功能值得关注

属性钩子&#xff08;Property Hooks&#xff09; 允许开发者为每个属性定义自己的get和set钩子&#xff0c;以在属性访问前后添加自定义逻辑。属性钩子通过__get()和__set()方法实现&#xff0c;类似于其他编程语言&#xff08;如Kotlin、C#和Swift&#xff09;中的属性访问器…

C++标准库:STL以及输入输出库,IO库,Cmath库,时间库,智能指针库与并发库等简介

标准库 C 标准库是 C 编程语言的核心部分&#xff0c;提供了丰富的功能和组件&#xff0c;包括容器、算法、迭代器、函数对象、智能指针、输入输出操作等。C 标准库主要包括以下几个组件&#xff1a; STL&#xff08;Standard Template Library&#xff09;&#xff1a;STL 是…

复分析——第6章—— Γ 函数和 ζ 函数(E.M. Stein R. Shakarchi)

第6章 Γ函数和Ζ函数(The Gamma and Zeta Functions) 毫不夸张地说&#xff0c;Γ函数和Ζ函数是数学中最重要的非初等函数之一。Γ函数在自然界中无处不在。它出现在大量计算中&#xff0c;并以分析中出现的大量恒等式为特征。对此的部分解释可能在于Γ函数的基本结构特性&…

游戏心理学Day21

玩家情绪与暴力攻击 情绪 情绪的分类 情绪是一种经常波动的东西&#xff0c;我们既体验过骄傲激动和开心&#xff0c;也体验过羞怯内疚和沮丧。我们的感受高度依赖于情境。研究者区分出至少三种途径来考察作为一种相对固定的人格特征的情绪&#xff0c;即为情感性&#xff0…

lock_wait_timeout

lock_wait_timeout 是 MySQL 中的一个重要参数&#xff0c;它用于控制当一个 MySQL 会话在等待锁时的等待时间。以下是关于 lock_wait_timeout 的详细解释&#xff1a; 定义与功能 定义&#xff1a;lock_wait_timeout 是一个会话或线程级别的参数&#xff0c;用于指定 MySQL …

python20 函数的定及调用

函数的定及调用 函数是将一段实现功能的完整代码&#xff0c;使用函数名称进行封装&#xff0c;通过函数名称进行调用。以此达到一次编写&#xff0c;多次调用的目的 用 def 关键字来声明 函数 格式&#xff1a; def 函数名(参数列表):函数体[:return 返回值是可选的&#xff0…

小白如何如何理解滑动窗口最大值问题python

文章目录 题目描述思路什么时候弹出元素什么时候加入元素 代码示例和解释 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 举例&#xff1a; 输…

命令行脚本批量转换工具说明

O N C E &#xff0c; ONCE&#xff0c; ONCE&#xff0c;EACH&#xff0c;$0都是NimbleText的关键字 O N C E : 任何 在 ′ ONCE:任何在 ONCE:任何在′ONCE’关键字之后的文本将只输出一次&#xff0c;不管有多少行&#xff0c;到’$EACH’关键字或者到文件末尾为止。 E A C…

《沃趣 分手后霸道少爷宠爆我》盛大开机典礼

南京五聚文化传媒有限公司自豪地宣布&#xff0c;引人入胜的2024年度短剧巨作——《沃趣 分手后霸道少爷宠爆我》——今日正式开拍&#xff01;在星辰下的华丽舞台上&#xff0c;我们汇集了业界的精英力量&#xff0c;准备讲述一个关于爱、错位与重生的故事。 典礼精彩亮点 1.…

0621熟悉项目

1、store:全局状态管理器。共享给各组件的数据。 2、首页组件组成&#xff1a;layout组件下的index为入口。左侧菜单栏SidebarNew&#xff08;大概意思是遍历数组生成菜单&#xff09;&#xff0c;右侧菜单栏app-mai&#xff08;主体内容&#xff09; main-tags-view&#xff0…

数据治理工程师CDGA备考心得、时间安排、题库资源

1.写在前面 之前做一些数据质量控制、元数据、主数据相关工作&#xff0c;一直忙于工作&#xff0c;没有去往考证的方面想&#xff0c;去年年底心血来潮就决定考一考&#xff0c;证多不压身嘛&#xff08;也有部分学生向我咨询&#xff09;&#xff0c;资源在文章结尾&#xff…

逻辑学中的蕴涵式:SQL开发者必备知识

逻辑学中的蕴涵式&#xff1a;SQL开发者必备知识 在逻辑学中&#xff0c;蕴涵式&#xff08;Implication&#xff09;是一种常见的逻辑关系&#xff0c;用于描述两个命题之间的条件关系。在SQL开发中&#xff0c;理解蕴涵式的概念和真值规则对编写复杂查询语句非常有帮助。本文…

onnx转openvino模型(2022版本和2024版本)

网上很多方法都是用openvino自带的mo_onnx.py来转的&#xff0c;但个人下载的2022和2024版都没见到这些文件。所以使用不了 &#xff08;1&#xff09;2022版openvino&#xff1a;python需要安装对应版本的openvino库(以2022.3.0为例&#xff09; pip install openvino2022.3…

软件测试——稳定性测试:adb Monkey

Monkey 1. Monkey1.1 Monkey 是什么1.2 Monkey 测试场景1.3 Monkey 特点1.4 Monkey 在哪里1.5 测试准备事项1.6 Monkey 参数列表 2. 基本命令3. 常用参数4. 事件类型5. 调试参数6. 日志管理7. 日志错误定位8. Monkey测试可以发现的问题 1. Monkey 1.1 Monkey 是什么 Monkey是一…

MySQL笔记——事务

事务 **控制事务****并发事务问题**事务隔离级别 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 控制事务 方式一&#xff1a; #查看和设置事务提交方式 select autocommit ; set autocommit 0 ; #提交事务 commmit; #回滚事务 rollback;方式二&#xff1a;…

electron自定义标题栏的最大化,最小化,关闭窗口

渲染组件代码&#xff1a; <template><div class"window-btn"><i class"minimize" click"minimize"><img src"../assets/img/最小化.svg" alt"最小化" /></i><i v-if"!isMaximized&…

react 0至1 案例

/*** 导航 Tab 的渲染和操作** 1. 渲染导航 Tab 和高亮* 2. 评论列表排序* 最热 > 喜欢数量降序* 最新 > 创建时间降序* 1.点击记录当前type* 2.通过记录type和当前list中的type 匹配*/ import ./App.scss import avatar from ./images/bozai.png import {useState} …