关于我对 jeecg-boot 的项目理解、使用心得和改进建议

news2024/10/5 18:28:49

       一句话总结: JeecgBoot帮助我提升了后端技术水平,入门了前端,让我在公司内部慢慢能够成长为全栈开发。

一、项目理解

       JeecgBoot 项目的核心理念是快速开发、低代码、易扩展。它采用了前后端分离的架构,后端使用Spring Boot + Mybatis Plus,前端使用Vue + Ant Design Vue。这种技术栈符合当前的技术趋势,使得开发者能够专注于业务逻辑的实现,而无需过多关注底层技术细节。目前开源项目后端有Spring Boot单体版和Spring Cloud微服务版,前端有Vue2版和Vue3版。

JEECG官方网站 - 基于BPM的低代码开发平台

二、使用心得

  1. 快速搭建项目:JeecgBoot 提供了丰富的模板和插件,可以快速生成前后端代码,大大缩短了项目搭建的时间。

  2. 完善的文档:JeecgBoot 的官方文档详细且清晰,对于初学者来说非常友好。同时,社区还提供了视频教学,方便开发者快速上手。

  3. 活跃的社区论坛:JeecgBoot 社区活跃,遇到问题时,通常能得到及时的解答和帮助。

JEECG官方网站 - 基于BPM的低代码开发平台

JeecgBoot 文档中心

jeecg视频专辑-jeecg视频合集-哔哩哔哩视频

JEECG技术论坛 - 基于BPM的低代码开发平台

三、改进建议

  1. 等保相关的建议,建议加入一些等保要求的优化建议,例如前后端数据传输加密,用户敏感数据加密入库,脱敏,用户账号登录错误超过一定次数锁定账号等,一些常见的等保要求。

  2. SQL 注入防护:使用预编译语句、参数化查询等技术,防止 SQL 注入攻击。同时,对用户输入进行严格的验证和过滤,避免恶意输入导致安全问题。

  3. 跨站请求伪造(CSRF)防护:使用 CSRF Token 技术,确保请求的来源是合法的。在表单提交时,将 CSRF Token 作为隐藏字段或请求头发送,服务器端进行验证。

  4. 跨站脚本(XSS)防护:对用户输入进行严格的验证和过滤,防止恶意脚本注入。使用安全的编码方式,如 HTML 实体编码,避免脚本执行。

  5. 定期安全检查与更新:定期对系统进行安全检查,发现并修复安全漏洞。同时,及时更新系统组件和依赖库,防止已知漏洞被利用。

  6. 备份与恢复:定期备份系统数据和配置文件,确保在发生安全事件时能够快速恢复系统。

  7. 深化角色权限管理,目前使用了最新的单体+Vue3版,角色权限管理只做到了菜单栏的级别,是否可以考虑自动化生成代码做到按钮级别(会不会是开源版的原因)。

  8. 添加数据权限管理,个人比较常用的是3年前就check out的版本,那时候还没有加入租户的功能,在后面的版本已经看到有了。只是无论新旧版对数据权限这块,没怎么涉及,建议可以做个组织架构的数据权限。

  9. 路由懒加载:对于体积较大的第三方资源,可以进行拆包或使用 CDN 引入,以提高加载性能,在使用Vue3版的前端,浏览器没有缓存的时候打开前端首页基本要很久(1分钟左右)。

总结

        JeecgBoot 明显提高了我们团队的开发效率,其全套技术栈符合当前技术趋势,学习文档完善,是一个非常值得学习的开源项目。

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

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

相关文章

5.覆盖增强技术——PUCCHPUSCH

PUSCH增强方案的标准化工作 1.PUSCH重复传输类型A增强,包括两种增强机制:增加最大重复传输次数,以及基于可用上行时隙的重复传输次数技术方式。 2.基于频域的解决方案,包括时隙间/时隙内跳频的增强 3.支持跨多个时隙的传输块&…

spring配置文件第一行导致读取配置失败

遇到读取配置存在问题,尤其当配置到第一行 通过spring执行测试类,没有问题,但是相同配置启动项目时,老找不到JdbcTemplate 使用配置: spring.shardingsphere.datasource.namesmaster,slavespring.shardingsphere.dat…

服务器往浏览器推消息(SSE)应用

1,SSE 和 WebSocket 对比 SSE(服务器发送事件) SSE是一种基于HTTP的单向通信机制,用于服务器向客户端推送数据。它的工作原理如下: 建立连接:客户端通过发送HTTP请求与服务器建立连接。在请求中&#xff…

【linux API 分析】register_chrdev

linux kernel:4.19 在注册字符设备的时候,可使用register_chrdev()函数,其对应的注销函数是unregister_chrdev(),其定义是在include\linux\fs.h文件 register_chrdev() 首先分析register_chrdev()函数 其定义如下 static inlin…

SMAP(Soil Moisture Active and Passive)数据下载

SMAP(Soil Moisture Active and Passive)数据下载 打开网站先注册登录用户 然后打开SMAP下载的网站 点击HTTPS File System进入下载页面 然后点击HDF文件下载 下载之后在HDF View里面预览

Spring中反转控制与依赖注入

目录 一、反转控制(IOC) 二、依赖注入(DI) 一、反转控制(IOC) 在以前的学习中为成员变量的赋值,一般都是直接在代码中完成,但是这种方式会产生耦合。然而利用Spring对成员变量赋值可…

QT学习day2

一、思维导图 作业: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admi…

sublime怎么调中文?

Sublime Text是一个功能强大的文本编辑器,它被广泛使用于编码过程中。在开发过程中,Sublime Text界面的语言设置通常默认为英语,无法直接输入中文。那么如何调整Sublime Text编辑器的设置,以允许在界面中输入和编辑中文呢&#xf…

CSS盒子模型的详细解析

03-盒子模型 作用:布局网页,摆放盒子和内容。 盒子模型-组成 内容区域 – width & height 内边距 – padding(出现在内容与盒子边缘之间) 边框线 – border 外边距 – margin(出现在盒子外面) d…

计算机网络学习笔记(三):数据链路层(待更新)

目录 3.1 基本概念 3.1.1 数据链路和帧 3.1.2 三个基本问题 3.2 类型1:使用点对点信道的数据链路层(路由器) 3.2.1 点对点协议 PPP:特点 3.2.2 点对点协议 PPP:帧格式 3.2.3 点对点协议 PPP:工作状态 …

了解web基础,http协议

域名 例如:www.baidu.com dns域名: 网络上的通信都是基于ip,通信模式:TCP/IP Tcp建立连接和断开连接,都是要双方进行确认的 建立连接:三次握手 断开连接:四次挥手 通信时端到端 端口进行通…

ONLYOFFICE 文档 7.5 现已发布:新增 PDF 编辑器、屏幕朗读器等功能

我们已推出最新版的在线编辑器,整个套件具备多项增强功能。敬请继续阅读,了解所有更新。 全新 PDF 编辑器 PDF 是工作中很常见的文件格式。 我们经常需要打开各种PDF格式的宣传册,签署协议和合同等等。 我们一直记得这一点,一直…

NR SRS power control

这篇看下NR SRS power control的相关内容,主要内容集中在38.213 7.3章节,SRS power control与PUSCH很类似,当然细节上也有所不同,这里简单看下。 UL功率控制,主要是PUSCH/PUCCH/SRS/PRACH的传输功率。 对于所有PUSCH/PUCCH/SRS传输…

掌握.NET基础知识(一)

前言 本文将讲解一些.NET基础。NET基础是指在计算机编程中使用.NET框架所需要的基础知识..NET的认识: .NET是由微软开发的一个跨平台的应用程序开发框架。它包括一个运行时环境和一个面向对象的程序库,可以用于开发各种类型的应用程序,包括桌面应用程序、…

计算机操作系统-第十天

目录 1、操作系统的进程 进程的概念 进程的组成------PCB 进程的组成------程序段、数据段 旧知新学:《程序是如何运行的》 进程的特征 本节思维导图 1、操作系统的进程 进程的概念 当我们打开多个qq程序,我们会发现任务管理器的进程中有…

对代码感兴趣 但不擅长数学怎么办——《机器学习图解》来救你

目前,该领域中将理论与实践相结合、通俗易懂的著作较少。机器学习是人工智能的一部分,很多初学者往往把机器学习和深度学习作为人工智能入门的突破口,非科班出身的人士更是如此。当前,国内纵向复合型人才和横向复合型人才奇缺;具有…

C#中使用 ref

下面是一个示例,演示了如何在C#中使用 ref: class Program {static void Main(){int number 10;Console.WriteLine("原始值: " number);ModifyValue(ref number);Console.WriteLine("修改后的值: " number);}static void Modify…

关于罗克韦尔跟西门子PLC之间通讯的解决方案

不同品牌的PLC设备之间通讯一般是通过总线模块,或者直接在PLC内编程实现,这样不仅硬件成本高,而且开发调试的时间都很长,后期维护也相当麻烦。本文采用IGT-DSER智能网关模块,PLC内不用编程,通过PLC现有的以…

如何在 Python 中创建一个虚拟环境,以及为什么需要它

当用 Python 开发软件时,一个基本的方法是在你的机器上安装 Python,通过终端安装所有需要的库,在一个 .py 文件或笔记本中编写所有的代码,并在终端运行你的 Python 程序。 这是很多初学者和很多从使用 Python 进行数据分析过渡的…

【Note】CNN与现代卷积神经网络part4(附PyTorch代码)

文章目录 2.2 残差网络(ResNet)2.2.1 函数类2.2.2 残差块2.2.3 ResNet模型2.2.4 训练模型2.2.5 Summary 本《CNN与现代卷积神经网络》Note系列会共分为4个part,本文为part4。本Markdown共4k字。 2.2 残差网络(ResNet) …