- 博客(521)
- 资源 (7)
- 收藏
- 关注
原创 【Vue3笔记02】Vue3项目工程中使用axios网络请求库实现前后端数据通信
一般在实际的项目开发中,我们都是会在src目录下,创建一个api目录,然后在这个目录里面创建对应的js文件,在每一个js文件里面定义好具体的接口请求,这样在其他地方就只需要导入对应的请求方法就可以完成接口请求啦。上面只是简单的工具类代码,后续可以根据实际的需要,加上对应的逻辑判断,例如:根据状态码,判断用户是否有权限、用户是否登录、请求头加上token等等操作。前面一个步骤可有可无,根据你自己的项目情况来决定,如果你想在任意的地方都可以直接使用axios,那么就可以加上前一个步骤的配置。
2024-03-23 15:30:50 171
原创 【Vue3笔记01】如何使用Vue3和Vite搭建前端项目的基础开发环境
目前前端开发中,使用最多的就是Vue.js框架,目前Vue.js框架常用的有Vue2、Vue3两个版本,Vue3和Vue2在语法上还是存在很大的差异的,这里我将介绍如何搭建Vue3开发环境。
2024-03-23 14:31:39 70
原创 SpringBoot工程在IDEA中使用package打包报错:java.lang.TypeNotPresentException: Type RepackageMojo not present
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions u
2024-03-22 23:00:53 253
原创 JasperStudio中TextField文本框组件渲染之后,出现行间距不一致的问题
最近在处理线上遇到的一个问题,是有关JasperReports报表相关的问题,问题背景大概是这样的:我们的项目中使用了JasperReports来渲染报表,其中使用到了Text Field文本框组件,但是问题是渲染出来的数据直接会出现一些间距不一致的空白区域,效果如下所示:
2024-03-05 22:07:13 373
原创 SpringBoot添加Swagger2启动报错:java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonKey
SpringBoot工程添加Swagger2依赖,启动报错:Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper、java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonKey。
2024-03-05 21:39:52 387
原创 【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务
今天在工作中,遇到了一个需求,这个需求大概是前端和后端需要采用WebSocket方式来进行通信,因为是WebSocket接口,需要客户端需要知道通讯的接口地址,WebSocket接口的地址格式是:【ws://ip:port/xxx/yyy】,其中ip和port是后端服务提供的,/xxx/yyy是后端服务中提供的具体WebSocket接口地址。不依然会断开连接吗。这种情况下,我们客户端如果再次发送消息,就会抛出异常,因为WebSocket连接已经断开,无法发送消息,那么要如何解决这个问题呢?
2024-02-27 21:50:16 1315
原创 Gitlab中CICD提交代码后,运行报错:Preparation failed: Cannot connect to the Docker daemon
从报错日志上来看,可以发现是不能连接Dcoker daemon进程所导致的,并且它还提示docker daemon进程是否正在运行?从这的报错大概就可以知道问题的原因是:docker中的daemon守护进程没有启动。执行成功之后,这个问题最终就解决了。
2024-02-19 20:20:13 376
原创 【多线程笔记04】多线程之停止线程、取消线程任务的几种方式
最近工作里面有这样一个需求,前端需要导入excel文件,后端将数据保存到数据库里面,入库之前,需要校验excel数据是否合法,只有满足一定业务规则的数据,才可以入库,另外需要给前端一个导入进度值,也就是说前端要可以看到进度条的效果,并且还有一个取消的功能,点击取消之后,已经导入的数据就不管了,还没有导入的数据就不需要入库操作。如何控制变量来停止线程呢?看到这里,你或许会问,这个变量定义成了静态的,那么多个线程同时执行,只要有一个线程将isStop修改成true,那么其实的所有线程岂不是也都停止了?
2024-01-28 14:36:49 560
原创 【反射笔记01】Java基于反射机制实现给对象中的某些字段进行赋值
不知道你有没有在日常的开发工作中,遇到过这种情况,你的数据表中存在下面这些常见的字段:create_user_id,create_user_name,create_time,update_user_id,update_user_name,update_time,在Java工程中新增数据、修改数据的时候,你每次都要调用entity对象的setXxx()方法去给对象赋值,于是你就写出了下面这种代码:
2024-01-28 11:48:42 88
原创 JasperReports渲染报表文件时候,读取图片报错:Byte data not found at:xxx.png.\r\n\tat
最近在工作中,使用JasperReports报表比较多一些,有次线上环境里面运行报错,查看报错日志,如下所示:从报错日志里面,可以大概看出是在调用fillReport()方法,填充报表数据的时候,读取不到xxx.png图片所导致的报错。于是我就是使用Jasper Studio报表工具打开jasper模板文件,然后查看里面是否有使用Image图片组件的地方,果然是有使用Image图片组件。一开始我以为是图片名称使用了中文所导致的,于是我就先修改图片名称为英文字母,将重新编译之后的jasper模板文件发到服
2024-01-27 16:06:12 712
原创 【screw-core依赖】Java使用screw-core依赖库生成数据库表结构文档
目前在我参与的项目开发中,使用到了screw-core依赖库,这个依赖库是用于生成数据库表结构文档的,为什么要生成表结构文档呢?这种方式虽然可以,但是有一个文档,我们直接搜索表名称,就可以快速定位到对应的数据表结构信息,那不是更加的一目了然吗?screw-core是需要连接到你的数据库,然后获取到数据库中的数据表信息,最后根据每一张数据表信息生成对应格式的文档,文档格式支持:html、markdown、word三种。到此,Java使用screw-core依赖库生成数据库表结构文档就完成啦。
2024-01-24 22:14:32 94
原创 【oshi-core依赖】Java获取计算机的内存信息、磁盘信息、CPU信息
最近在工作中,遇到了一个这样的需求,大概需求内容是:编写一个定时任务,每隔5分钟获取一次当前计算机的CPU、磁盘、内存等使用情况,如果超过设置的阈值,就需要给对应的系统人员发送消息提示,告知管理人员及时处理。从这个需求中,可以看出我们需要的做的事情就是获取当前计算机的使用情况,那么问题来了?如何使用Java获取到当前计算机的相关信息呢???下面介绍如何使用oshi-core依赖库,获取当前计算机的相关信息。
2024-01-24 21:36:47 203
原创 【集合排序】Java语言中实现集合排序的几种方式
有些场景下,可能需要对集合进行多个字段的排序,例如:先根据年龄排序,年龄相同的情况下,则再根据ID排序。一般情况下,我们不会使用自然排序,因为使用自然排序,那么排序规则就固定死了,失去了排序的灵活性。我们通常会使用带有参数的sorted()方法,然后传递一个Comparator比较器对象,灵活的指定自定义的排序规则。前面一种排序方式下,我们需要自己实现Comparator比较器方法,代码有些复杂化了,JDK中Comparator类提供了一些快速创建比较器的方法,我们可以直接拿来使用,简化代码的编写。
2024-01-21 15:28:23 47
原创 【Guava笔记01】Guava Cache本地缓存的常用操作方法
Guava是google提供的一个通用工程模块,它提供了很多常用的核心库功能,例如:集合操作Collections、并发编程库、通用注解库、字符串处理的依赖库、I/O操作的库、Cache本地缓存库等等。你可以把guava看作和hutool工具包差不多。
2024-01-19 20:52:04 273
原创 【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard
使用IDEA打开刚刚解压得到的dashboard工程,因为rocketmq-dashboard是需要连接RocketMQ消息队列服务的,所以在它的配置文件中,需要指定RocketMQ消息队列的服务地址,修改application.properties配置文件中的rocketmq.config.namesrvAddr属性。打包成功之后,就可以在target目录下面找到生成的jar包,这个jar就是可执行的rocketmq-dashboard程序。
2023-12-26 23:38:20 1564
原创 【软件安装】VMware安装Centos7虚拟机并且设置静态IP,实现Windows和Centos7网络互相访问
这篇文章主要介绍VMware安装Centos7虚拟机并且设置静态IP,实现Windows和Centos7网络互相访问。
2023-12-08 23:30:38 1529
原创 【软件安装】Centos系统中安装docker容器(华为云HECS云耀服务器)
进入/etc/yum.repos.d目录下,查看是否存在docker相关的镜像,如果有的话,先删除对应的docker镜像源。docker安装成功之后,可以通过【docker --version】命令,查看docker的版本。】命令,此时控制台就会开始下载docker相关的东西,会提示是否继续,输入y即可。执行下面命令,先创建docker服务的软链接,并且启动docker服务。执行下面命令可以停止docker服务,也可以重启docker服务。在安装之前,首先执行下面的命令,删除旧版本的docker。
2023-11-16 22:48:31 1346
原创 【SpringBoot笔记42】SpringBoot集成knife4j生成接口文档
在实际开发过程中,后端需要提供对应的接口文档给前端人员,这样前端才可以根据文档进行开发,并且联调测试,这就引出了一个问题啦?接口文档怎么给到前端人员呢???写一个word文档,然后丢给前端开发吗?虽然这种方式是可以的,但是效率太低了,后端开发还得一边写代码,一边写word文档,太浪费时间了,为了节约时间(偷懒),各种接口文档工具就出现啦!swagger-ui:在代码中编写注解,启动程序后,就可以在swagger-ui提供的界面中看到对应接口,并且可以在线调试。
2023-11-04 18:23:34 385
原创 【软件安装】Windows系统中使用miniserve搭建一个文件服务器
在启动miniserve时候,可以通过【-u】参数开启文件上传功能,并且可以指定上传文件保存到哪个目录下面,如果不指定目录,那么默认就是上传到miniserve启动目录。在启动miniserve服务的时候,可以通过指定【-v】参数,开启控制台输出访问日志,这样每次访问文件服务器的时候,都会将访问的信息打印到cmd窗口中,如下所示。下载exe的可执行文件,miniserve服务器的exe文件直接下载就可以使用,不需要额外的安装之类的,双击exe文件就可以启动miniserve服务。
2023-10-26 23:33:12 1032
原创 【软件安装】Linux系统中安装MySQL数据库服务
下载MySQL安装的方式有很多种,可以直接去MySQL官网下载Linux版本的安装包,也可以使用wget命令直接从指定地址下载。在MySQL解压之后的目录(mysql5.7.26目录)下面,创建一个my.cnf配置文件,可以在配置文件中添加一些内容。MySQL数据库启动的时候,默认是使用mysql用户启动的,所以我们需要在Linux系统中创建一个mysql用户。将mysql目录下的mysql.server文件,复制到/etc/init.d/mysql下面,命令如下。
2023-10-24 22:06:44 302
原创 【FTP文件下载】Java基于commons-net依赖包实现从FTP服务器下载文件(亲测可用)
为了能够模拟从FTP服务器上面下载文件,这里在开始之前,我自己在Windows电脑上搭建了一套FTP服务器,目的是用作测试环境,当然啦,在实际工作里面,肯定是用不到的啦,大家忽略就行,直接跳到第二部分。apache提供了一个commons-net依赖包,这个包主要是包含了一些访问网络的工具类以及一些常见网络协议的实现,例如:Echo, Finger, FTP、NNTP、NTP、POP3(S)、SMTP(S)、Telnet、Whois。我们就使用这个依赖来完成FTP文件的下载功能。
2023-10-15 16:44:27 421
原创 【下载共享文件】Java基于SMB协议 + JCIFS依赖下载Windows共享文件(亲测可用)
这篇文章,主要是介绍一下如何基于SMB协议,下载Windows共享文件,既然是Windows共享文件,那首先就需要有这么个测试环境,所以,我们第一步就自己搭建一个Windows共享文件服务。使用Java语言访问Windows共享文件,有一个现成的依赖库,叫做:jcifs,引入这个依赖就可以访问Windows共享文件,另外,这个库在2010年开始就不再更新了。在【共享】界面中,点击【共享】按钮,此时会再次弹出一个窗口,添加你需要共享目录的用户,然后点击添加,最后点击共享按钮即可。
2023-10-15 14:49:06 372
原创 【itext7】使用itext7将多个PDF文件、图片合并成一个PDF文件,图片旋转、图片缩放
最简单的合并方式,那就是读取两个PDF文件,然后将其合并成一个新的PDF文件,保存到服务器上面之后,在将这个新的PDF文件和下一个待合并的PDF文件进行合并,以此类推,最终可以得到一个完整的PDF文件,但是这种方式缺点在于,每一次合并之后,都需要新生成一个PDF文件,并且下一次合并之后,还要再读取这个PDF文件,这就会导致多次读取文件的过程,效率不是很理想。/*** 基于内存中的字节数组进行PDF文档的合并* @param firstPdf 第一个PDF文档。
2023-10-04 14:09:37 1841
原创 【SpringBoot笔记41】SpringBoot集成Sentry实现异常信息和日志内容的收集(包含详细步骤,注册Sentry账号、创建项目、收集异常信息等)
sentry是一款用于收集项目中的异常信息以及日志的第三方聚合平台,它可以将项目中出现的异常信息、日志等内容,全部保存到sentry平台里面,并且提供了可视化的界面用于查看对应的异常日志信息。其实,你可以将sentry看作是C/S模式的平台,其中我们的项目中需要引入sentry依赖,也就是我们的项目作为Client客户端,然后sentry会单独部署一个服务端,专门用于接收和保存Client客户端发送过来的异常日志信息,并且提供查看界面。
2023-09-19 22:55:54 297
原创 【SpringBoot笔记40】SpringBoot中@SendTo、@SendToUser、@MessageMapping、@SubscribeMapping注解介绍及其使用
SendToUser注解中,默认只会处理以【/user】开头的消息地址,因为@SendToUser注解标记的方法,是会被【UserDestinationMessageHandler】代理器处理的,当然,我们也可以自定义处理地址的前缀,这要在WebSocket配置类中设置。@MessageMapping注解是SpringBoot中提供的,它的作用是:当客户端向某个地址发送消息时候,此时会根据@MessageMapping注解映射的地址进行匹配,找到对应的映射地址之后,就会执行对应的方法。
2023-09-10 10:27:41 471
原创 【SpringBoot笔记39】SpringBoot + SockJS + Stomp实现WebSocket通信(建立连接、发送消息、订阅消息、断开连接)
MessageMapping注解是SpringBoot中提供的,它的作用是:当客户端向某个地址发送消息时候,此时会根据@MessageMapping注解映射的地址进行匹配,找到对应的映射地址之后,就会执行对应的方法。@SubscribeMapping注解是SpringBoot中提供的,主要作用是:指定一个订阅地址,当浏览器客户端订阅了某个地址之后,此时就会执行对应的方法,并且将对应方法的返回值立即返回给浏览器客户端。
2023-09-09 17:35:02 615
原创 【JasperReports笔记06】JasperReport报表开发之常见的组件元素(Table、Subreport、Barcode等)
TextField是一个基础组件,它表示的是一个文本域,可以设置一个表达式对象,例如:Parameters、Fields等,也就是说,TextField文本域组件可以在程序运行过程中,动态的显示文本内容。StaticText是Jasper中的一个基础组件,用于表示静态文本内容,它表示的内容在程序运行过程中是不可以改变的,在制作模板文件的时候,就已经固定了文本内容。Subreport是子报表组件,它可以在一张报表中嵌入另一个报表,从而实现父子报表的功能,父子报表我在之前的文章中有介绍了,可以看下这篇文章【
2023-08-31 21:07:34 1253
原创 【JasperReports笔记05】JasperReport指定自定义字体文件,解决中文不显示问题
前面几篇文章,介绍了如何使用JasperReport开发报表,可以发现,我们之前的模板文件都是使用的英文,从来没有写过中文,这是因为,默认情况下,JasperReport是不支持显示中文,如果要显示中文,那么我们就需要自己指定采用的字体文件,下面就介绍一下,如何自定义字体文件,显示中文内容。
2023-08-26 21:44:08 1053
原创 【MD5加密结果不一致问题】同一个文本字符串,使用MD5加密之后,得出的加密结果居然不相同
今天工作中,遇到一个奇怪的问题,我负责对接第三方的短信发送接口,接口中有一个入参是sign加签字段,根据短信内容进行MD5加密之后得到,于是我就是使用JDK自带的MD5加密算法,写了一个加密方法,代码如下:
2023-08-24 20:48:11 3251 1
原创 maven install打包报错There are test failures.\target\surefire-reports for the individual test results.
maven install打包报错There are test failures.\target\surefire-reports for the individual test results.
2023-08-22 21:44:32 1010
原创 【JasperReports笔记04】如何使用Jasper Studio制作父子报表,并且通过Java + Parameters参数填充模板文件
目录。
2023-08-19 15:49:19 1514 1
原创 【JasperReports笔记03】JasperReports之模板文件七大组成区域介绍(Title、PageHeader、ColumnHeader、Detail、ColumnFooter等)
Title区域是只会显示在模板文件的第一页最开头位置,注意啦,这个只会显示一次,并且只会显示在第一个页面里面,这个区域一般是设置整个模板文件的大字标题,例如:我们写论文的时候,都会在第一页中写【xxx毕业设计论文】,这个地方就是专门为此而设置的。Column Header是表头区域,它是在使用了Table表格组件时候,才会起作用的一个区域,Column Header是显示在Page Header区域的下面,并且是会显示在每一个页面中,位于Table表格的顶部区域。
2023-08-19 13:48:31 716
原创 【SpringBoot笔记38】SpringBoot基于jakarta.mail依赖实现发送邮件的功能(邮件发送)
发送邮件之前,我们需要知道发件人邮件、邮件服务器地址、邮件服务器、邮箱授权码(相当于发送邮件时候的认证密码)等信息,一般在实际开发中,这些信息都是作为配置信息存放在application.yml配置文件里面,SpringBoot已经给我们提供了mail邮箱的配置信息。到此,邮箱授权码就获取到啦,记住啦,这个东西是要放到application.yml配置文件里面的,并且不要随便让别人知道,不然别人就可以是要你的邮箱啦。接着点击【管理服务】,此时会跳转到安全设置界面,在这个界面中就可以生成【邮箱授权码】了。
2023-08-17 21:46:33 469
原创 【Python笔记02】Python之使用Pyinstaller将python源代码文件打包成exe可执行文件
这篇文章主要是介绍Pyinstaller打包exe文件,其中打包参数:-F:表示将代码打成一个exe可执行文件。-w:表示不会在CMD命令行窗口输出日志信息,如果你要查看输出信息,就不要使用这个参数。-i:指定ICO图标的文件。# 打包单个exe文件# 打包单个exe文件,并且CMD窗口中不输出信息# 打包单个exe文件,并且指定ICO图标。
2023-08-15 21:55:25 505
原创 【JasperReports笔记02】如何使用Jasper Studio中的table组件制作简单表格模板文件,并且通过Java + Parameters参数填充表格数据
可以发现,我们的创建列没有宽度好像太小,都没有占满整个table区域,你可以设置每一列的宽度,也可以直接选中table空白区域,然后在右下角区域可以设置列宽度自适应。这里我们现在点击next,进入到下一个窗口,这个窗口中我们勾选【Create an empty dataset】,也就是创建一个空的数据集。然后将Table组件拖拽到Detail区域里面,此时会出现一个弹出框,让你选择表格的数据源,也就是表格里面的数据从哪里获取。根据自己的实际情况来选择,我这里就选择了两个,即:表格的列头、表格的头。
2023-08-12 16:50:36 2945
原创 【JasperReports笔记01】Jasper Studio报表开发工具的安装以及使用Java填充模板文件内容
双击Jaspersoft Studio.exe文件,启动JasperReports报表工具,如下图所示:上图就是启动之后的欢迎界面,看着有点像eclipse开发工具对吧!没错,Jasper Studio就是基于Eclipse进行开发的,它可以单独使用,也可以作为Eclipse的插件添加到Eclipse开发工具中使用。可以看到在Jasper Studio的主报表区域有很多的组成部分,如下图所示:Title区域:这个区域只会在模板文件的第一页中显示,从第二页开始就不会显示,主要定义文件的标题内容。
2023-08-10 21:34:17 2493 5
原创 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)
Word文件有两种后缀格式,分别是:doc和docx,doc是Word2003之前使用的,docx是Word2007之后使用的,可以说docx是对doc的扩展和优化。我这篇文章中使用的Word模板文件就是利用docx后缀的,核心思想是将docx文件转换成对应的XML文件,然后修改XML文件中的内容,将其改成Freemarker模板引擎中的占位符,之后通过Freemarker渲染程序将占位符替换成实际的数据,并且将替换之后的模板文件转换成docx文档,这样就实现了根据模板文件生成Word文档啦。
2023-08-05 22:12:29 4426 2
原创 【SpringBoot笔记37】SpringBoot基于@ServerEndpoint、@OnMessage等注解的方式集成WebSocket
Spring框架中是采用【javax.websocket】包下的注解实现了WebSocket的功能,常见的注解有下面这些:@ServerEndpoint:用于指定对外暴露的WebSocket服务端点,即:接口地址、服务地址。@OnOpen:当WebSocket创建连接的时候,会执行该注解标记的方法。注解标记的方法,可以有参数:Session、@PathParam路径参数。@OnMessage:当服务端接收到WebSocket发送的消息时候,就会执行该注解标记的方法,该方法必须有参数,参数就是客户端
2023-07-31 21:26:37 1179
原创 【SpringBoot笔记36】SpringBoot自定义WebSocketHandler集成WebSocket
WebSocketHandler是Spring提供的一个接口,用于创建一个WebSocket服务端,我们只需要自定义一个类,接着实现WebSocketHandler接口,该接口中有五个方法,重写下面这五个方法即可。TextWebSocketHandler:专门处理文本消息的实现类。SockJsWebSocketHandler:添加了SockJS消息架构的实现类,该类继承自TextWebSocketHandler类。/**
2023-07-31 21:09:45 889
Nginx转发WebSocket接口配置方式
2024-02-27
适用于Windows系统的nginx安装包(提供快速启动、停止脚本)
2024-02-27
停止线程和取消线程任务的案例代码
2024-01-28
rocketmq-dashboard-jdk17可视化管理工具【JDK17环境】
2023-12-28
rocketmq-dashboard可视化界面管理工具
2023-12-26
Java反编译工具(jd-gui)
2023-11-25
【JasperReports】报表开发工具jasper studio
2023-08-05
基于Python+xlrd+pymysql将excel数据导入到MySQL数据库的exe可执行文件
2023-08-02
PDFBox替换文本内容(PDFBox根据模板生成PDF文档)
2023-07-18
自定义数据字典工程模块
2023-06-18
基于vue2和element-ui实现的自定义分页表格组件
2023-06-11
redis集群模式配置文件
2023-04-16
可折叠组件(好友列表)小案例
2023-03-29
数据结构之栈和队列的代码实现(C语言)
2022-12-30
android实现APP应用引导页&启动页的功能源代码
2022-12-07
Android自定义Toast提示信息工具类
2022-10-23
Android实现一个简易版本的购物车小案例
2022-10-21
使用Android模拟实现微信首页功能
2022-07-17
android模拟实现QQ登录界面
2022-07-14
JavaScript实现跑马灯效果
2019-05-25
JavaScript实现滑动式轮播图效果
2019-05-25
JavaScript实现切换式轮播图效果
2019-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人