项目介绍
JeecgBoot是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省成本,同时又不失灵活性!
当前版本:v2.4.6 | 2021-08-16
源码下载
- https://github.com/jeecgboot/jeecg-boot
- https://gitee.com/jeecg/jeecg-boot
技术文档
- 官方网站: http://www.jeecg.com
- 新手入门: http://jeecg.com/doc/quickstart
- 在线演示: http://boot.jeecg.com
- 技术文档: http://doc.jeecg.com
升级日志
主要四大方面优化: Online表单功能强化、数据库兼容优化、性能优化、底层依赖升级
新功能升级
- 新增微服务模块 jeecg-cloud-sentinel
- 新增OAuth2登录,支持企业微信和钉钉的静默授权
- 新增在线用户监控,支持踢掉功能
- 支持自定义首页,通过枚举方式配置
- 升级代码生成器兼容更多数据库
- 升级Online报表分页功能,兼容更多数据库
- 升级在线数据源配置,支持更多数据库
- Online表单,支持按用户授权
- Online表单,部门、人员选择组件支持自定义存储显示字段
- Online表单,支持与积木报表对接
- Online表单,支持多字段排序
- Online表单,支持关联查询和关联列表展示
- Online表单,sql增强支持选中多条数据
- 字典拦截器性能优化,将循环查询改造成一次性查询
- @Dict 字典翻译时,增加redis缓存
- 进一步优化前端,压缩online js lib减少1M
- 解决IE兼容问题
- 去掉durid广告
- 接口签名密钥串移到配置文件里
- SQL注入漏洞处理
- 查询过滤器,值为逗号、空格报错
- 多租户配置升级
- 工具类hutool缩减依赖,只引用必须模块
- Demo模块默认改成多租户示例
- 代码生成器数据库配置不支持密码加密
- 主键策略修改 IdType.ID_WORKER_STR --> IdType.ASSIGN_ID
- gateway默认走database、增加swagger关闭配置
支持数据库
Online报表兼容
- mysql 、mariadb 、oracle 、db2 、h2 、hsql 、sqlite 、postgresql 、sqlserver
- 达梦数据库 、虚谷数据库 、人大金仓 、南大通用
- Phoenix 、presto 、Gauss 、Firebird、clickhouse 、 OceanBase
Online表单兼容
- mysql 、mariadb 、oracle 、postgresql 、sqlserver 、达梦数据库
代码生成器兼容
- mysql、mariadb、sqlserver、oracle、postgresql、sqlite、polardb、clickhouse、edb
- 达梦数据库、人大金仓数据库、华为高斯、derby
升级底层依赖
- jimureport-spring-boot-starter 1.3.4-beta >> 1.3.78
- autopoi 1.3.2 >> 1.3.5
- jeewx-api 1.4.3 >> 1.4.5
- codegenerate 1.3.2 >> 1.3.6
- mybatis-plus 3.4.1 >> 3.4.3.1
- knife4j-spring-boot-starter:2.0.8 --> 2.0.9
- fastjson 1.2.75 >> 1.2.76
- redisson 3.13.6 >> 3.16.1
Issues修复
- 修改头像modal #2593
- 2.4.5升级后出现后端排序报错 #2639
- JS增强怎么实现点击一个表单的列表页面的自定义按钮弹出另一个表单的新增页面呢?#2580
- 分类字典修改后不自动刷新内容#I3TO07
- JS增强根据条件怎么限制不让编辑和删除呢?#2592
- 列表页面限制删除没效果!限制编辑有用 #I3V547
- online表单中,下拉多选框控件无法查询 #I3N16Y
- 从2.4.3更新后online表单开发,js增强使用beforeEdit方法,编辑点击无效,删除beforeEdit即可恢复 #2647
- DictAspect字典解析性能问题 #I3IB91
- online表单控件 用户选择控件 #2619
- 关于 token 命名问题 #2232
- online表单数据源配置,数据库类型识别错误 #2671
- online表单数据源配置,不支持数据库密码加密 #2672
- 2.4.5前台定时任务无法翻页 #2666
- 部门查询问题 #I3UD06
- 定时任务, 数量超过12个时分页失效 #I3Y1G5
- 多租户服务端对请求头校验 #2598
- JeecgListMixin.js 中loadData没有对request超时做处理 #2584
- 前端用户选择单选无法置空的问题 #2610
- 关于OL排列逻辑的小建议 #1785
- online在线表单新增字段时,焦点不会自动定位到最新行数据 #2511
- 【online表单开发】新增数据库字段时,顺序可否放在ID的后面,而不是所属部门的后面 #1823
- pgsql 数据库 代码生成,配置 之后 取得表是public下面的 #2101
- postgresql 模式问题 #2656
- 数据库改成postgresql后,导入数据库表无法使用 #I3VN62
- online表单中主从表权限相互影响 #2680
- Online 报表配置中,报表SQL语句是多行的时候没法全选SQL语句 #2674
- 自动任务cron表达式生成的问题 #2696
- 2.4.5企业微信中应用中是否可以设置自动登录 #I3Z8SE
- Sign 签名校验失败 #2728
- jeecgboot采用达蒙数据库后,online代码生成模块配置数据库连接无法连接 #2725
- 前端发现BUG #I3ZL4T
- 最新代码在开发环境无法在ie11上打开 #2812
- 关于postgresql数据源连接问题 #2747
- JEditableTable.formTypes.upload组件,显示错误 #2691
- 前端省市县组件太旧了,有部分县区没有维护进去 #I40MGS
- AutoPOI中@EXCEL注解参数没有 #I3ZE9E
- 已冻结的租户下的用户依然可以登陆 #2796
- 删除租户时,未验证租户是否已被引用 #2795
- JVxeTable用loadNewData问题 #2784
- JS增强,beforeDelete无效 #I42OAU
- IE11打开登录页,无法正常显示,一直转圈 #2841
- 前端省市县组件太旧了,有部分县区没有维护进去 #I40MGS
- 省市区组件内容缺少 #I4074O
- 代码优化和规范(ExcelImportServer.class) #2783
- 多租户安全问题 #2814
- 导入mixins缺少加载中的动画,数据量比较大时,导入进行中没有反应,建议加上this.loading = true进行控制 #I3O4YL
- 根据数据权限前缀获取允许导出的表格字段查询,期望查询是一条数据,应用户有两个角色,查出两个角色 #I3ZKGU
- beforeDelete无效 #2815
- 2.4.5 online内嵌子表,设置按时间范围查询时,日期选择框叠加 #2764
- 请问,online表单设置按钮,绑定JAVA增强或SQL增强,无法多选,只能一次选一条 #2766
- sql增强问题,如果操作多行,例如截图中,多选后,可以激活多行被勾选的数据。 #2743
- 在jeecg中如何使用自定义按钮,选中一行或多行数据后,打印jimu单据,未找到教程,请大佬指点 #2739
- 登录系统,系统管理-系统通告-新增-“标题”处存在存储型XSS #I40W1W
- 钉钉同步到本地的人员没有状态,导致同步之后无法登录 #I3ZC2L
- nacos修改了端口号不生效,启动时候还是默认端口8848 #2819
- 使用autopoi导入提示缺少方法 #2868
- JPopup组件在modal中使用报错 #2729
- 2.4.5 没有用记管理没有同步钉钉功能 I44JE9
- mybatis plus 3.4.1版本 @SqlParser 注解过时,近期有考虑升级到mybatis plus 3.4.3吗? #2840
- 在线报表导出的合计数据与页面上显示的不一致 #2852
- BusinessException能否前端提示异常信息 #I42UOQ
- 第三方APP消息测试问题 “字段太长,超出数据库字段的长度” 解决方案 #2898
为什么选择 JeecgBoot?
开源界“小普元”超越传统商业平台。引领低代码开发模式(OnlineCoding-> 代码生成器 -> 手工MERGE),低代码开发同时又支持灵活编码, 可以帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高开发效率,节省成本,同时又不失灵活性。
- 采用最新主流前后分离框架(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,基于角色的访问控制)
系统功能模块
├─系统管理
│ ├─用户管理
│ ├─角色管理
│ ├─菜单管理
│ ├─权限设置(支持按钮权限、数据权限)
│ ├─表单权限(控制字段禁用、隐藏)
│ ├─部门管理
│ ├─我的部门(二级管理员)
│ └─字典管理
│ └─分类字典
│ └─系统公告
│ └─职务管理
│ └─通讯录
│ └─多租户管理
├─Online在线开发(低代码)
│ ├─Online在线表单 - 功能已开放
│ ├─Online代码生成器 - 功能已开放
│ ├─Online在线报表 - 功能已开放
│ ├─Online在线图表(暂不开源)
│ ├─Online图表模板配置(暂不开源)
│ ├─Online布局设计(暂不开源)
│ ├─多数据源管理 - 功能已开放
├─积木报表设计器(低代码)
│ ├─打印设计器 - 功能已开放
│ ├─数据报表设计 - 功能已开放
│ ├─图形报表设计(支持Echart) - 功能已开放
│ ├─大屏设计器(暂不开源)
├─消息中心
│ ├─消息管理
│ ├─模板管理
├─代码生成器(低代码)
│ ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
│ ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
│ ├─代码生成器模板(生成代码,自带excel导入导出)
│ ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
│ ├─高级查询器(弹窗自动组合查询条件)
│ ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
│ ├─平台移动自适应支持
├─系统监控
│ ├─Gateway路由网关
│ ├─性能扫描监控
│ │ ├─监控 Redis
│ │ ├─Tomcat
│ │ ├─jvm
│ │ ├─服务器信息
│ │ ├─请求追踪
│ │ ├─磁盘监控
│ ├─定时任务
│ ├─系统日志
│ ├─消息中心(支持短信、邮件、微信推送等等)
│ ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
│ ├─系统通知
│ ├─SQL监控
│ ├─swagger-ui(在线接口文档)
│─报表示例
│ ├─曲线图
│ └─饼状图
│ └─柱状图
│ └─折线图
│ └─面积图
│ └─雷达图
│ └─仪表图
│ └─进度条
│ └─排名列表
│ └─等等
│─大屏模板
│ ├─作战指挥中心大屏
│ └─物流服务中心大屏
│─常用示例
│ ├─自定义组件
│ ├─对象存储(对接阿里云)
│ ├─JVXETable示例(各种复杂ERP布局示例)
│ ├─单表模型例子
│ └─一对多模型例子
│ └─打印例子
│ └─一对多TAB例子
│ └─内嵌table例子
│ └─常用选择组件
│ └─异步树table
│ └─接口模拟测试
│ └─表格合计示例
│ └─异步树列表示例
│ └─一对多JEditable
│ └─JEditable组件示例
│ └─图片拖拽排序
│ └─图片翻页
│ └─图片预览
│ └─PDF预览
│ └─分屏功能
│─封装通用组件
│ ├─行编辑表格JEditableTable
│ └─省略显示组件
│ └─时间控件
│ └─高级查询
│ └─用户选择组件
│ └─报表组件封装
│ └─字典组件
│ └─下拉多选组件
│ └─选人组件
│ └─选部门组件
│ └─通过部门选人组件
│ └─封装曲线、柱状图、饼状图、折线图等等报表的组件(经过封装,使用简单)
│ └─在线code编辑器
│ └─上传文件组件
│ └─验证码组件
│ └─树列表组件
│ └─表单禁用组件
│ └─等等
│─更多页面模板
│ ├─各种高级表单
│ ├─各种列表效果
│ └─结果页面
│ └─异常页面
│ └─个人页面
├─高级功能
│ ├─系统编码规则
│ ├─提供单点登录CAS集成方案
│ ├─提供APP发布方案
│ ├─集成Websocket消息通知机制
│─流程模块功能 (暂不开源)
│ ├─流程设计器
│ ├─在线表单设计
│ └─我的任务
│ └─历史流程
│ └─历史流程
│ └─流程实例管理
│ └─流程监听管理
│ └─流程表达式
│ └─我发起的流程
│ └─我的抄送
│ └─流程委派、抄送、跳转
│ └─。。。
└─其他模块
└─更多功能开发中。。
系统截图
PC端
手机端
PAD端
报表效果
大屏效果
欢迎吐槽,欢迎star~