项目介绍
JeecgBoot 是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot 引领新的低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省研发成本,同时又不失灵活性!
当前版本:v2.4 | 2020-12-01
源码下载
技术文档
技术文档:http://doc.jeecg.com
常见问题: http://jeecg.com/doc/qa
QQ群:816531124
升级日志
此版本重构很大,重点升级了微服务模块,完善了微服务所需的各个组件,实现了微服务方案落地( 新版可一秒变微服务); 同时代码生成器也做了重点升级,更加智能; 另外后台所有请求统一了前缀,代码重构较大、 前端代码目录和启动模式也做了较大修改, 所以升级会出现不兼容情况,请注意!!! 单体切换为微服务文档 2.4+
微服务升级
升级SpringCloud到Hoxton.SR8版本
升级SpringCloudAlibaba到2.2.3.RELEASE版本。
提供更简单的微服务和单体切换机制,1秒切换。
提供丰富的启动Starter:xxl-job分布式定时任务、Redisson分布式锁、rabbitmq消息队列、消息总线等
路由网关升级:支持三种模式加载路由配置(yml、nacos、database)
路由网关升级:支持熔断/降级/限流全局配置
配置中心升级:默认采用nacos作为配置中心,简化配置
提供服务监控模块
提供微服务示例代码模块
路由配置界面换了新界面,操作更方便
代码生成器升级
支持默认值生成
支持高级查询的生成
支持禁用状态(只读)生成
支持上传图片和上传文件控制数量
支持表单列数设置生成
默认单表、一对多、树支持详情页面的生成
Online popup支持翻页多选
支持开关控件的生成
Online低代码升级
Online报表支持合计功能
Online报表支持多表头设置
Online表单导出支持高级查询
Online表单同步数据库,支持数据库密码加密
Online表单上传文件图片控件,支持上传个数设置
Popup组件,支持编码方式传递动态参数
Online表单功能测试,行编辑表格换成JVxeTable提升性能
Online报表配置界面,换成JVxeTable提升性能
Online表单恢复大组件(富文本、MD编辑器、代码编辑器)支持
Online表单依赖JS进一步压缩变小
平台架构升级
前端改造成多环境配置(启动配置模式变了)
前端代码目录结构做了调整,代码更清晰易懂
在线swagger文档换为knife4j,UI更漂亮功能更强大
在线数据源和平台数据源,密码支持加密设置
第三方登录做重构,支持一个用户对应多个第三方账户
重构请求,system模块所有请求统一以/sys/开头,demo模块统一以/mock开头
系统框架中的安全漏洞问题加强
升级底层依赖
springboot => 2.3.5.RELEASE
mybatis-plus 3.3.2 => 3.4.1
druid 1.1.17 => 1.1.22
jwt 3.7.0 => 3.11.0
shiro 1.5.3 => 1.7.0
fastjson 1.2.72 => 1.2.75
mysql-connector-java 8.0.20=>8.0.21
dynamic-datasource-spring-boot-starter=> 3.2.0
autopoi => 1.2.2
Issues处理
谷歌浏览器,JEditableTable输入校验提示框位置偏移 #2005
同步数据库,对于一些关键字的表名 实际并没有创建成功 #1977
选择部门弹出框超出屏幕 #1995
【BUG】两个online报表之间跳转。排序后排序条件未清空造成报错 #1822
JEditaTable,子表默认添加一条数据,addDefaultRowNum设置无效 #1930
AutoPOI(Excel工具)一对多导出needMerge 有某条数据对应数量小于2时报错 #1840
Excel导出断点查了到的是一个date类型的字段(XXtime)没有赋值 issues/I249JF
一对多导出报错 issues/I1YH6B
省市区组件校验必填配置无效 #1902
Long类型精度丢失问题 issues/I24KXI
online下拉多选框,搜索时只字典code进行搜索不能通过字典text搜索 issues/I1WMHB
组件 JSelectDepart.vue不是默认id时新内容编辑问题 issues/I247X2
控件默认值是“#{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的数据并修改。sys_org_code会更新到更新人所属部门issues/I1PRTU
支持自定义sql 查询条件 引入#{sys_user_code} 等用户查询条件 能否匹配上权限数据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
JAVA访问权限控制 无法使用的问题issues/1740
online表单开发的权限控制使用报错issues/1733
online表单开发中权限控制的勾选框没反应issues/1741
找不到jeecg-cloud-module在其子目录config下有两个配置文件 issues/1754
切换微服务后无法使用Online相关功能issues/1760
自定义组件-用户多选组件自定义查询条件问题issues/1718
缺少表结构eoa_mailbox_infoissues/I1VN0E
数据导出信息与列表字段控制逻辑不一致issues/I1M4FZ
jeecg-cloud-application-beta.yml有配置重复问题issues/1775
JPopup 是否支持动态参数?issues/1772
Mybatis-plus的IdType配置问题issues/1789
[popup相关]如何实现带动态参数的报表在popup中使用issues/1666
当进入登录页时,有一定几率出现验证码错误issues/1714
大屏设计下的两个示例没有样式和JSissues/1799
online表单开发-同步数据库异常issues/I1WDT5
选取职务名称出现全选issues/1753
切换导航模式,导致菜单栏丢失issues/1763
TableField引起的QueryGenerator.initQueryWrapper()生成sql语句where 字段没有替换issues/1750
登入生成token的小bugissues/I1XOVS
部门选择框bugissues/I1X4DT
SYS_USERS_CACHE_JWT 缓存用户jwt,部门或人员信息变更时没有更新对应的缓存issues/I1XOD6
内嵌子表风格列表页面;点击加号后操作下面错位如果把操作那里的fixed:'right',注释掉就没有问题;但是锁定操作就没有了;我感觉应该能完善下issues/I1WHR0
vue前端 /public/index.html js路径问题 (小bug)issues/1844
内嵌子表风格生成的代码,子表数据不显示issues/1782
切换tab会刷新页面issues/I1TFQT
拦截器冲突 ,更新失效问题issues/I1SMY7
内嵌子表主题(一对多) 生成 菜单 问题issues/1769
360浏览器兼容模式IE11内核完全进不去,一直处于加载状态issues/1862
路由缓存问题issues/842
OL一对多 移除或删除附表后主表生成代码报错--表信息加载失败issues/1773
菜单是否缓存路由问题issues/I1Y0K6
j-image-upload图片组件单张图片详情回显空白issues/1810
【popup】如何控制popup只能选择一条记录issues/1866
切换导航模式,导致菜单栏丢失issues/1763
左侧菜单栏缩放窗口后无法显示issues/1498
使用前端缓存keep-alive造成的bugissues/827
导出参数没有高级查询参数issues/1860
官方代码中没有找到【queryAllAuth】【queryUserAuth】相关代码issues/1879
模糊查询通配符问题issues/1820
详情时图片显示不了issues/1779
左侧边栏收缩,右侧界面不能上下滚动issues/1835
如何实现JEditableTable中的POPUP 弹窗记录多选 issues/1885
dict_item中的item_value如果存在_字典会失效issues/1854
导入Excel,随便一个Excel都能被导入issues/1756
sql注入 issues/1887
前端页面改变浏览器窗口大小后,菜单展开按钮失效,无法展开菜单,无法操作issues/1913
j-image-upload控件循环图片不显示issues/1882
职位/部门选择器, buttons设为false,disabled为true时,还可以点击修改issues/1876
建议升级swagger-bootstrap-ui依赖版本issues/1856
按部门选择用户控件问题issues/1871
怎么配置测试环境和生产环境啊issues/1815
所有页面都设置了缓存路由,在已打开的tab中来回切换不会刷新页面,但是新打开一个tab页面,就会刷新其他已经打开的tab页面issues/I1QLKP
切换微服务定时任务有问题issues/1824
数据库同步失败issues/1945
系统中使用popup插件数据不刷新,需要点击查询或者刷新才可以,请问是有地方可以配置或者在哪里改?issues/1749
菜单收缩为图标模式时,右侧区域滚动失效 issues/1932
通配符问题 issues/1952
sql server数据库,表存在判断方法有问题issues/1929
js增强附表内置方法调用问题 issues/1819
切换微服务定时任务有问题issues/1824
Online表单配置了下拉多选,将改字段作为查询条件查不到数据。issues/I23JY5
为什么选择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,基于角色的访问控制)
点击左下角查看更多
本文分享自微信公众号 - JEECG(jeecg521)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/jeecg/blog/4770167