- 博客(47)
- 收藏
- 关注
原创 软件工程基础知识
软件工程是指应用计算机科学技术、数学及管理科学等原来,以工程化的原则和方法来解决软件问题的工程,其目的的提高软件生产率,提高软件质量,降低软件成本。软件工程涉及软件开发、维护、管理等多方面的原来、方法、工具和环境。软件工程学分为可分为软件开发技术和软件工程管理技术。软件开发技术包含软件开发方法学、软件工具、软件工程环境。软件工程管理包含软件工程管理学、软件经济学。
2024-11-07 22:05:06 592
原创 Spring MVC 原理与源码
虽然整体流程不复杂,但是通过阅读 Spring MVC 的源码,我们会发现,Spring MVC 优雅的提供了各种拓展点,例如 HttpMessageConvert、ExceptionHandler 等等。但是随着前后端分离,后端大多提供 Restful API ,里面的 ViewResolver 和 View 的流程,已经不再被需要。源码中,我们将得到解答。Spring MVC 整体代码量有 5w+ 行,通过本专栏,可以快速的研读核心部分的代码,节省你的时间。
2024-10-21 16:26:32 304
原创 Spring Boot Druid 数据库连接池入门
如果我们希望持久化到 MySQL、Elasticsearch、HBase 等存储器中,可以通过 StatViewServlet 提供的 JSON API 接口,采集监控信息。如果 StatViewServlet 提供的 JSON API 接口,无法满足我们的诉求,我们可以通过自定义 API 接口,使用。配置了 StatViewServlet ,提供监控信息的展示的 html 页面和 JSON API。下,提供了各种 Druid 的配置项,胖友可以自己看看。配置项,设置 Druid 连接池的自定义配置。
2024-10-21 16:03:25 2089
原创 Spring Boot HikariCP数据库连接池入门
在我们的项目中,数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中,主要是至于怎么选择,两者都非常优秀,不用过多纠结。下面,我们来进行 HikariCP 和 Druid 的入门,会配置单数据源和多数据源情况下的连接池。
2024-10-21 15:56:09 1990
原创 MyBatis-Plus-Join 如何实现连表查询
编写实体类 User.java、Addser.java和自定义resultType UserDTO.java(此处使用了 Lombok 简化代码)从以上步骤中,我们可以看到集成MyBatis-Plus-Join非常的简单,只需要引入 starter 工程即可。初始化工程 创建一个空的 Spring Boot 工程(工程将以 H2 作为默认数据库进行演示)通过以上几个简单的步骤,我们就实现了 User 表的连表功能,甚至连 XML 文件都不用编写!编写 Mapper 包下的 UserMapper接口。
2024-10-21 15:38:09 488
原创 Spring event实战
Spring Event 是 Spring 框架提供的一种事件驱动编程模型。它允许应用程序中的组件通过发布和监听事件来进行松耦合的交互。这种机制基于观察者设计模式,其中组件可以扮演事件发布者的角色,而其他组件则作为事件监听器来响应这些事件。
2024-10-21 15:08:23 1222
原创 常用的 Cron 表达式
在每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间,每 5 分钟触发。* 6L 2002-2005 2002 年至 2005 年,每月的最后一个星期五上午 10:15 触发。0 * 14 * *?* * 每天上午 10:15 触发。0 0 12 * *?
2024-10-21 14:48:18 229
原创 如何实现一个滑块验证码
基于前端实现的滑块验证,由于是vue2项目,因此先建一个滑块验证码的组件,方便在两个不同的页面使用。最近改造公司的登陆功能,手机验证码登录和密码登录需要使用滑块验证码。loading.js,在更新滑块验证码图片时,可以有一个加载中的样式。另外其他的一些使用到的按钮图片刷新图片等如下。滑块滑动hover样式图片。
2024-07-26 17:41:49 285
原创 索引知识总结
一、什么是索引?索引是在数据库管理中一个非常重要的概念,它是一种数据结构,设计用于提高数据库查询的效率。索引类似于书籍的目录或索引页,可以帮助数据库管理系统快速定位和检索数据,而不必检查数据库中的每一行。总的来说,索引是提高数据库性能的关键工具,但需要谨慎使用,以避免不必要的开销。二、如何使用索引在数据库中使用索引主要涉及两个方面:创建索引和利用索引进行查询优化。
2024-07-09 20:56:06 951
原创 springboot如何快速接入minio对象存储
的配置类,用于加载 application.yml文件中的minio配置信息,并初始化 Minio 的客户端,使用 Minio 客户端进行相关操作,例如上传文件、下载文件、删除文件等。1.在项目中添加 Minio 的依赖,在使用 Minio 之前,需要在项目中添加 Minio 的依赖。可以在 Maven 的。4.创建MinioController.java类,处理文件上传,下载,桶创建,删除等操作。3.在项目中编写一个名为。
2024-06-01 08:46:45 452
原创 阿里云免费证书过期更换证书操作步骤:
下载后解压上传到服务器指定目录,修改nginx配置,待签发后,浏览器访问443端口,如果是安全的连接则证书便更换成功。下载验证文件fileauth.text到,解压后上传到服务器指定位置,修改nginx的配置文件里的配置路径。https和http都需要配置访问此文件的路径。验证通过后,下载证书pem/key。选择文件验证方式,提交申请。
2024-04-02 18:01:03 2438 2
原创 调用第三方post接口下载文件
最近需要将一个老系统的功能迁移到新系统,老系统将不再使用,有一个从第三方接口下载文件的功能,post测试如下。在程序内部下载文件,并保存到服务器。hutool便派上用场。首先引入hutool依赖。具体代码如下,因为知道下载的文件都是pdf,所以保存的时候直接以pdf格式保存了。
2024-01-12 14:01:35 1089
原创 nginx配置ssl证书 使用https
申请证书,需要先将 fileauth.txt保存到服务器上,必须包含 .well-kenow/pki-validation 目录下。基于能白嫖就白嫖的原则,阿里云给每个用户一年20个ssl免费证书申请额度,虽然免费的证书只能使用3个月。将https的请求转发到http ,这样你的网站既可以通过http访问,也可以通过https访问。首先在阿里云控制台搜索 sll证书。然后数字证书管理服务界面 购买证书。nginx配置,这样申请才可能通过。选择购买免费的证书。购买完成后,申请证书。
2024-01-11 08:27:36 472
原创 vant+vue+springboot 实现图片单张和多张批量上传
最近做一个H5项目,使用的是vue2+vant2+springboot前后端分离架构。有一些选择多张图片上传的需求,做完在这里分享一下。需要注意的是在beforeRead 函数中,做文件校验时别出错,否则选择多张图片后会没反应。accept=“image/*” 表示只接受图片类型文件。mutiple 默认为true,多选图片需设置为true。:max-count="5" 限制上传的图片数量。beforeDelete 函数表示删除文件前。beforeRead 函数表示读取文件前。
2024-01-05 11:12:15 1385
原创 springevent实现业务解耦
springevent是spring的一个基于观察者模式的事件消费框架,可以轻松的实现业务解耦,比如发送邮件,短信,记录日志,或其他与主业务没有强相关的逻辑处理,从而提高接口的响应速度,解耦业务逻辑,使这些操作不影响主业务逻辑的执行。2.定义事件监听器和处理器,当监听到事件发布,便处理此事件,我此处以文件上传后,word文档转pdf文件并加水印为例。当发布事件后,ApplicationListener就会监听到事件发布,处理此事件。
2023-12-30 10:42:25 405
原创 springboot结合 lombok 实现日志记录
由于项目中使用了lombok,因此可以结合springboot的自带的日志打印框架logback实现日志打印和记录日志到文件。3.在resource文件夹中创建logback的日志配置文件 logback-spring.xml。4.修改application.yml文件中日志的配置。5.启动项目,即可实现日志打印到控制台好,记录日志文件。2.在需要记录日志的类上添加注解@Slf4j。1.需要引入lombok的依赖。
2023-12-30 10:24:49 807
原创 Vue+Elementui 如何实现路由缓存
首先在router路由配置的信息中添加 keepAlive:true属性。1.路由缓存不仅可以提高用户体验,还可以降低后端系统的压力。然后在使用keepAlive标签包裹路由。这样就可以实现路由缓存。
2023-12-27 16:15:05 471
原创 记一次安全漏洞处理过程 Appscan漏扫问题
我使用的是nginx-0.18版本,升级成最新的稳定版0.24版,漏扫通过。解决办法:我使用的是nginx服务器,在nginx.conf文件的server里面配置如下内容,有的内容按自己项目实际情况配置。漏洞2 : Content-Security-Policy 响应头缺失或具有不安全策略,项目上线之前,经运维部门漏扫网址发现很多安全漏洞,这里分享一下这些漏洞的解决办法。到“X-Content-Type-Options”响应头缺失或具有不安全值,漏洞5. 返回不必要的响应头信息。至此,各种漏洞完美解决!
2023-12-20 15:26:35 717
原创 vant+vue2+springboot实现图片上传,删除图片
v-model绑定文件列表 multiple表示可以上传多个文件 accept表示可以接受上传的文件类型。max-count 表示最多上传文件个数 before-delete 表示文件删除调用函数。after-read 表示文件上传函数。
2023-11-20 17:14:53 550
原创 一个注解实现接口限流
3.由于使用redis做限流,此处使用lua脚本不仅可以实现原子性操作,而且性能更高。在resource下建目录存放lua脚本。1.在pom.xml引入redis依赖和aop依赖。2.在yml文件中配置redis相关信息。基于aop和lua脚本实现接口限流。自定义限流异常,并进行全局异常处理。4.编写redis配置文件。此处的限流类型枚举类。
2023-10-31 20:04:23 113 1
原创 springboot与验证码图片
我是一个杠入行没多久的小白,在当下大环境很差的情况下,虽然有一份工作,但是总感觉明天就可能被社会淘汰,一方面是因为ai的出现对程序员这个行业冲击还是很大的,另一方面是整个经济环境的下行,很可能突然一天就被老板裁掉。在一个很卷的环境下,唯一的出路就是能多学习就多学习,反正闲着也是闲着。配置说明:注释掉的配置是自带的servelt,简单配置一下,不需要额外编写controller接口,就可以返回验证码图片。下面的两个配置,一个是普通的字符串验证码,另一个是数学计算验证码,可以自己实现验证码生成器。
2023-10-29 08:44:41 97 1
原创 如何多次读取request对象中的io流参数
由于request的参数只能读取一次i,但是在实际的开发中,我们需要大量的参数校验或者拦截器过滤器需要获取request的请求参数,为了解决多次读取request中的参数,我们需要重写HttpServletRequestWrapper类中的方法。然后我们就可以在其他的地方,比如切面类,其他过滤器,拦截器中通过request多次读取其中的请求参数了。然后写一个拦截器,我此处是拦截所有请求,你也可以根据需要具体拦截那类请求。
2023-10-27 11:15:28 97 1
原创 springboot文件上传大小设置
最近接手一个项目,文件上传功能用的比较多,有业务人员经常反映文件上传老是被限制在20Mb以下,很不方便,有甚多大文件上传不了,我打开yml配置文件,才发现了两个关键配置都设置的20Mb,因此上传会失败。因此我给改成100MB,但测试发现还是不行。后面百度了很多资料,终于找到关键配置是下面这个。最终成功解决这个问题。
2023-10-18 14:24:19 106 1
原创 记录一次真实mysql数据恢复
幸好系统刚上线不久,数据不是很多,使用人数也不多,就赶紧到网上找解决办法,很多办法都试了,加班到晚上10点终于恢复了99%的数据,可能有半小时左右的数据没法恢复了,因为那点时间我可能执行了删数据操作,所以无法精确到具体的时间点。而且最近的备份文件是上周6的。选择创建基本任务,填写相关内容,选择脚本文件,触发器设置每天执行的时间,保存,windows就会每天按时执行此脚本生成备份文件,这样即使出现故障,也只会丢失小段时间的数据,再配合binlog,即可恢复增量数据。恢复方法就是找到最近的备份文件,执行恢复。
2023-10-14 10:02:15 108 1
原创 java实现doc文档转pdf
首先需要添加相关依赖,因为我项目中使用guava的,因此在这里需要将此依赖中的guava依赖排除,避免出现依赖冲突。最好我们调用工具类中的wordToPdf方法将文件地址传入即可,生成的文件地址可以自行更改。因为项目中需要将用户上传的doc文档转成pdf格式,网上找了很多方案,最终选择使用。此方法缺点是需要在服务器上安装office或者wps。然后创建一个PDFUtil工具类。documents4j的方式。
2023-10-04 10:55:59 1654 1
原创 java单例模式设计与实现
可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。单例模式实现方式一:饿汉式 这种方式比较简单,但对于一些不一定会使用的对象,会造成内存空间的浪费。这种方式不仅不会浪费资源,因为使用的java的类加载机制,所以性能很高,推荐使用。在它的核心结构中只包含一个被称为单例类的特殊类。这种方式虽然不会造成资源浪费,但加锁会影响性能。单例模式实现方式三:静态内部类。
2023-10-04 10:44:07 56 1
原创 java类加载机制相关知识简单总结
类在加载阶段需要使用类加载机制加载类,jvm使用的双亲委派机制进行加载,简单理解就是,每个类都有自己的类加载器,加载时会先让父类加载器加载,当父类加载器无法加载时才会根据全类名尝试自己加载。至此一个类经过加载、验证、准备、解析、初始化完成类的加载,加载阶段生成的class字节流信息会保存在方法区中,并在堆中生成此类的类对象,此对象描述了此类的所有信息,做为此类数据访问的入口。2.jvm类加载器:启动类加载器,扩展类加载器,应用程序类加载器,以及自定义类加载器。解析:主要解析的是类,接口,方法,字段。
2023-07-10 16:40:15 135 1
原创 javaweb项目中数据传输DTO
此dto可以一直作为查询参数传递到mapper.xml文件中,大大简化了前端很多杂乱参数的收集工作。而且接口之间互调,也可以作为参数传递,无需定义很多无用的参数传递类,大大简化了开发。为了方便项目中一些方法之间数据传输以及前端参数的接收,自定义多功能参数传递Dto接口,继承自map接口。为了方便创造此对象,再编写一个生成此对象的工具类,以及接受request对象前端传进来的参数,在controller中,直接可以将request对象传给Dtos类,让它自动解析。然后实现此Dto接口。
2023-07-08 09:24:24 612 1
原创 简单实现vue项目给页面添加水印
在需要水印的页面中,在页面的created,mounted生命节点调用此接口生成想要的水印。将此js文件放到项目某个目录,我这边是src/utils目录里。然后在main.js中引入此工具文件。
2023-07-08 08:55:07 738 3
原创 如何在springboot项目中导入带图片的excel表格
Excel(name="印模",type = 2,savePath = "D:\\VIPRFileUpload")图片列只需要添加type为2是图片,savePath是保存地址。前端vue代码:包含一个上传按钮和隐藏的上传文件组件。需要创建一个与表格列字段相对应的实体类。至此,导入excel成功。后端使用easypoi。接口以及具体的导入实现。
2023-06-17 09:43:29 1270 2
原创 记一次使用vue+springboot生成pdf文件并导出
当在界面点击导出pdf时,向后端发起请求。如果是前后端分离项目,需要放行此地址。
2023-04-27 10:54:49 2702 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人