项目介绍
JeecgBoot是一款基于代码生成器的低代码平台,开源界“小普元”超越传统商业级平台!采用前后端分离架构:SpringBoot 2.x,Ant Design&Vue,Mybatis-Plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的低代码开发模式(OnlineCoding模式-> 代码生成器模式-> 手工MERGE智能开发),帮助Java项目解决70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。JeecgBoot还独创在线开发模式:在线表单、在线报表、在线图表、在线工作流等等
当前版本:v_2.3 | 2020-09-14
源码下载
- https://github.com/zhangdaiscott/jeecg-boot
- https://gitee.com/jeecg/jeecg-boot
技术文档
- 在线演示:http://boot.jeecg.com
- 视频教程:实战入门视频
- 技术文档:http://doc.jeecg.com
- 常见问题: http://bbs.jeecg.com
升级日志
里程碑SpringCloud微服务版,支持单体和微服务自由切换;提供新行编辑表格JVXETable,轻松满足各种复杂ERP布局,拥有更高的性能、更灵活的扩展、更强大的功能。 单体升级为微服务文档: http://doc.jeecg.com/1867450
重大功能
- 1、JAVA后端项目重构,提供轻松切换微服务SpringCloud方案,支持单体和微服务自由切换,十分钟搞定
- 2、Online表单权限配置智能化,让权限授权更加简单易用。
- 3、 新行编辑表格组件 JVXETable 推出,更强大的性能、支持灵活自定义组件,支持各种复杂业务场景,支持各种复杂布局,轻松满足ERP项目复杂布局要求、提供各种复杂布局场景示例。
- 4、Token安全漏洞严重问题解决
平台优化升级
- JAVA后端结构改造支持微服务,增加SpringCloud Alibaba支持,支持微服务和单体自由切换
- swagger接口返回结果支持泛型
- JVXETable新列行编辑表格组件,并提供多套JVXETable示例
- 升级mysql驱动依赖
- 登录登出日志记录人员
- 实体类主键策略修改,IdType.IDWORKERSTR全部改为IdType.ASSIGN_ID
- 提供服务器端docker发布脚步,docker-compose-server.xml
- 【代码生成器】新增一套模板:一对多tab风格
- 【代码生成器】树列表支持条件查询,支持批量删除
- 【代码生成器】生成代码支持按列排序
- 【日志改造】日志按模块类型记录信息
- Apache Shiro漏洞问题解决、代码生成器升级依赖
- 用户管理,逻辑删除字段类型是int,带引号会导致数据库不兼容处理
- swagger-ui 保持登录状态修改了,放开Swagger-ui
- 消息推送采用模板消息freemarker解析模板
- 用户表增加设备id,支持uniapp移动端消息推送
- 开源反馈多租户系列问题处理
- 行编辑示例合计功能bug修改
- 【gitee#I1N3H1】eidtTable的值改变事件
- JSelectBizComponent组件切换页数值问题修复
- 增加下拉搜索字典项监听改变事件
- 左侧菜单栏缩放窗口后无法显示 issues#1498
- 修复路由传参的值传送到jinput框被前后各截取了一位 #1336
- [LOWCOD-774]切换顶部模式显示问题
- popup 支持翻页多选bug
- 登录文字写错修正
ONLINE 优化升级
- Online 一对多ERP风格权限存在问题
- Online操作加一些操作日志
- Online字典表加权限控制机制逻辑
- Online导入表单功能,排除那些表前缀支持配置
- Online权限改造,更加简单易用
- Online 树列表删除时删除子节点数据
- Online 表单,只修改字段的默认值,执行同步不会变更数据库逻辑修复
- Online 表单添加loaded事件
- Online 视图按钮权限问题
- Online 新增处理子表是否只读
- Online 表单子表唯一校验支持
- Online 子表支持修改控件长度 【gitee/I1P2UM】
- Online菜单权限 内嵌风格 逻辑缺失
- Online 数据权限问题 in查询问题LOWCOD-782
- Online表单开发,普通同步报错 LOWCOD-830
- Online 新增时间字段控件
- Online 查询默认值未生效修复
- Online href 跳转页面支持参数接收
Issues处理
- 控件默认值是“#{sysUserName}”,但是功能测试时控件没有默认值issues/I1QEMS
- ERP模板界面,如果超时,点击重新登录,无法跳转到登录界面issues/I1PQ0W
- 在线表单开发中数据表的某一字段的默认值设为#{sysUserName}时,无法获取到值。issues/1639
- 控件默认值#{sysUserName}无法显示issues/1544
- Online表单开发,点击“新增”按钮,是否树:选择是,页面控制台报错 issues/I1BHXG
- 2.2.1的ERP模板不可用 issues/I1OAM9
- 关于在线开发中的表单开发和报表配置的问题issuse/I1NV8M
- Bug:2.2.1版本 Online排序功能失效issues/1450
- 下载最新开源代码,本地测试,online表单开发,勾上“是否排序”,页面无排序功能issues/I1N6Z1
- controller方法参数列表中带有HttpServletRequest类型参数,执行完成后,保存日志报错issues/1394
- Bug:如果请求参数有request,@AutoLog自动日志 会报异常issues/1413
- radis缓存未更新 导致 修改主表,子表关联数据未更新issues/1436
- 登录登出日志没有记录人员issues/I1NBZO
- Online表单开发,建议增加时间控件issues/1362
- online前端模板变量有误issues/1470
- 内嵌子表单显示字段越多,多选框及其序号宽度也会增加issues/1442
- 建议:优化架构issues/1377
- 自定义组件,建议支持多条件查询issues/1433
- popup多选的问题issues/I1OERG
- components文件夹Table组件showPagination参数问题issues/1467
- 富文本组件在tab页面切换的时候失效issues/1462
- 定时任务调用 SysBaseApiImpl.addLog 记录日志报错issues/1472
- 建议升级shiro依赖 Apach Shiro官方披露其cookie持久化参数rememberMe加密算法存在漏洞issues/1473
- Apache Shiro权限绕过issues/1516
- 优化建议:/thirdLogin/{source}/callback 接口在签名校验失败时返回失败的标识码issues/1441
- online表单如何指定字段进行排序 或是否支持多个字段进行排序 issues/1411
- 子表怎么修改控件长度issues/I1P2UM
- JEditableTable.vue卡顿原因之一buildPropsissues/1177
- JEditableTable 用 slot的形式绑定一个JTreeSelect 如何实现双向绑定issues/984
- 谷歌浏览器开发者模式下,点击屏幕调试后左侧菜单栏收起,且折叠图标失效issues/1584
- 前端问题issues/1602
- 漏洞:其他部门可以新增管理员角色issues/1538
- jar 包上传到服务器后 autopoi 读取不到excel模版文件issues/1505
- 左侧菜单栏缩放窗口后无法显示issues/1498
- 怎么对表格和编辑表格的表头进行自定义样式修改issues/I1RBGF
- online-导入数据库表issues/I1R43G
- 顶部导航,偶尔会无法显示收起按钮issues/I1FKIP
- side menu响应式有bugissues/1619
- 高级查询构造器条件值是下拉框并且下拉框项目较多时检错报错issues/1517
- 自定义控件: j-image-upload 问题issues/I1PRAE
- 数据权限为,单位A到Z的人员只能增删查改自己单位的录入的数据,单位A到Z的上级甲可以查看单位A的数据并修改。sysorgcode会更新到更新人所属部门issues/I1PRTU
- 支持自定义sql 查询条件 引入#{sysusercode} 等用户查询条件 能否匹配上权限数据issues/1547
- 配置数据权限为包含时,条件为多个时,sql语句报错issues/1541
- 【bug】postgresql 查看已删除用户类型错误issues/1642
- 前端切换标签不会保存原有状态及数据issues/1369
- 导出excel实体反射,时间格式转换错误issues/1573
- 表单开发页面bugissues/I1RMJA
- 加入多租户管理后数据表无法正常更新issues/1640
- 表单主附表设计issues/1481
- 配置字段href,跳转页面issues/I1QP0Y
- excel中的数据使用函数计算的列导入报错 Cannot get a text value from a numeric formula cell.issues/I1QDHN
- 如果进行在线表单开发的一对多对多的设计?issues/I1PEB2
- 登录页面错别字issues/993
- 在线文档中不能支持对List的入参 issues/1246
- online表单开发 填写表明时只要数据库中有一个库中存在这个表就会提示表名已存在issues/I1TWWK
- online 表单开发 表明已经存在issues/I1TWOO
- Online表单开发,普通同步报错issues/1565
- Online表单开发(表名已存在)issues/1665
- 前端页面放开个人页后console报错issues/1577
- 跨域问题issues/I1TAAP
- eidtTable的值改变事件issues/I1N3H1
- 2.2.1版本bug,默认主题父子表生成的代码,如果先点击编辑,后点击新增,新增页面明细上会有之前编辑页面上的数据issues/1454
- JS增强获取表单字段为undefinedissues/1388
- 表格合计功能bugissues/1399
- radis缓存未更新 导致 修改主表,子表关联数据未更新issues/1436
- JSelectBizComponent 组件存在bugissues/1425
- online表单下拉选择,校验字段,字典Table 写上where条件后,在线测试没问题,生成代码后,出现sql注入问题issues/1423
- JEditableTable样式问题issues/I1LNK6
- Result.okissues/1487
- 隶属多个部门,登录页面输入正确,点击登录后,弹出部门选择,不选,直接刷新网页,直接进入dashboard了issues/1449
- 二级下拉联动组件 一级只出来一个值issues/1652
- 多租户环境下,导入无法获取租户idissues/1647
- 消息模板建议使用freemarkderissues/1610
- online开发href跳转到其他表单对应的详情页issues/1480
- v2.2.0版本,按钮type为danger时,看不到文字issues/1286
- 后台报空指针issues/I1OAY9
- 按钮/权限issues/I1OUGU
- Online配置的菜单,怎么查看操作日志issues/I1MQLC
- JEditableTable样式问题issues/I1LNK6
- 聚合路由错误issues/1444
- 数据字典项 Redis 缓存冲突issues/1522
- dictText名称解析报错,想问下这个问题如何解决,需要解析的表是单表(树)issues/1634
- 消息模板类型建议添加PushPlusissues/1611
- 怎么添加清除功能issues/I1QYF2
- JeecgBootExceptionHandler无法捕获AuthenticationExceptiony异常issues/I17UAS
- 如果是tomcat部署项目的话,系统监控-》性能监控-》tomcat信息查询不到issues/I181YO
- idea运行服务,Tomcat监控信息session值为0issues/I1C44Z
- JEditableTable帮助文档没有更新(找不到FormTypes.file)issues/I1OL4S
- edit表格加的插槽怎么做表单验证,或者自带的FormTypes.input怎么做自定义事件issues/I1OVFB
- online表单下拉选择,校验字段,字典Table 写上where条件后,在线测试没问题,生成代码后,出现sql注入问题issues/1423
- editTable使用问题issues/I1M48Q
- 登录系统之后,用户如果没有权限,会直接进入404,这个怎么能设置登录进来只能默认打开的只有首页?issues/I1O6D1
- online表单开发,生成主附表,配置菜单+auto,无权限访问(操作)issues/I1PEXA
- 实体内有多个表字典注解的时候报错,导致翻译失败issues/1534
- AutoPoi多表头导出,会多出一列空白列issues/1513
- tinymce第一次打开正常,页面切换后再切换回来内容空白且无法编辑issues/1507
- 抽屉式界面下方有一点奇怪的显示issues/1532
- 头部菜单样式,右上角图标颜色重合issues/I1RJ1Y
- 弹窗全屏组件issues/I1TL8O
- 【bug】in 类型多值查询 不适配postgresql issues/1671
- QueryGenerator.installMplus()未处理@TableField(exist = false)导致构建查询出现column "xxx" does not existissues/1680
- Online在线表单开发,在查询配置中勾选“是否启用”,将会取消选中“页面配置”中的是否查询选项issues/1669
- online表单开发功能问题issues/1654
- online开发 popup 怎么显示名称 存储IDissues/1335
- 返回值问题:this.$refs.editableTable.getValuesSync()issues/1675
- that.changeOptions在表单初始化的时候无法初始化下拉框数据issues/I1TGVX
为什么选择 JeecgBoot?
开源界“小普元”超越传统商业企业级开发平台。引领新的开发模式(Online Coding- > 代码生成器 - > 手工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,基于角色的访问控制)
系统模块
├─系统管理
│ ├─用户管理
│ ├─角色管理
│ ├─菜单管理
│ ├─权限设置(支持按钮权限、数据权限)
│ ├─表单权限(控制字段禁用、隐藏)
│ ├─部门管理
│ ├─我的部门(二级管理员)
│ └─字典管理
│ └─分类字典
│ └─系统公告
│ └─职务管理
│ └─通讯录
│ └─多租户管理
├─消息中心
│ ├─消息管理
│ ├─模板管理
├─智能化功能
│ ├─代码生成器功能(一键生成前后端代码,生成后无需修改直接用,绝对是后端开发福音)
│ ├─代码生成器模板(提供4套模板,分别支持单表和一对多模型,不同风格选择)
│ ├─代码生成器模板(生成代码,自带excel导入导出)
│ ├─查询过滤器(查询逻辑无需编码,系统根据页面配置自动生成)
│ ├─高级查询器(弹窗自动组合查询条件)
│ ├─Excel导入导出工具集成(支持单表,一对多 导入导出)
│ ├─平台移动自适应支持
├─系统监控
│ ├─Gateway路由网关
│ ├─性能扫描监控
│ │ ├─监控 Redis
│ │ ├─Tomcat
│ │ ├─jvm
│ │ ├─服务器信息
│ │ ├─请求追踪
│ │ ├─磁盘监控
│ ├─定时任务
│ ├─系统日志
│ ├─消息中心(支持短信、邮件、微信推送等等)
│ ├─数据日志(记录数据快照,可对比快照,查看数据变更情况)
│ ├─系统通知
│ ├─SQL监控
│ ├─swagger-ui(在线接口文档)
│─报表示例
│ ├─曲线图
│ └─饼状图
│ └─柱状图
│ └─折线图
│ └─面积图
│ └─雷达图
│ └─仪表图
│ └─进度条
│ └─排名列表
│ └─等等
│─大屏模板
│ ├─作战指挥中心大屏
│ └─物流服务中心大屏
│─常用示例
│ ├─自定义组件
│ ├─对象存储(对接阿里云)
│ ├─JVXETable示例(各种复杂ERP布局示例)
│ ├─单表模型例子
│ └─一对多模型例子
│ └─打印例子
│ └─一对多TAB例子
│ └─内嵌table例子
│ └─常用选择组件
│ └─异步树table
│ └─接口模拟测试
│ └─表格合计示例
│ └─异步树列表示例
│ └─一对多JEditable
│ └─JEditable组件示例
│ └─图片拖拽排序
│ └─图片翻页
│ └─图片预览
│ └─PDF预览
│ └─分屏功能
│─封装通用组件
│ ├─行编辑表格JEditableTable
│ └─省略显示组件
│ └─时间控件
│ └─高级查询
│ └─用户选择组件
│ └─报表组件封装
│ └─字典组件
│ └─下拉多选组件
│ └─选人组件
│ └─选部门组件