
随笔
文章平均质量分 63
随心所欲的分享
@胡海龙
www.huhailong.vip
展开
-
做了个记录心情并结合AI给出建议的小程序
微信小程序名称叫程序记录员,主要功能是记录情绪,然后根据情绪和产生情绪的原因通过AI给出有助于心理健康的建议。同时支持统计功能,可以以查看日历的方式浏览不同日期下情绪的变化轨迹。现在还在迭代开发过程,有一些bug,不过也在每天进行修复和优化了,欢迎体验!原创 2024-07-02 15:47:40 · 309 阅读 · 0 评论 -
JavaScript中指定大小分割数组的一种实现
今天分享一个使用JavaScript分割数组为多个自数组的方法实现原创 2024-05-08 10:15:30 · 322 阅读 · 1 评论 -
【代码分享】使用HTML5的Canvas绘制编码说明图片
本文分享了如何使用canvas实现编码说明图片绘制,文章中有完整的代码,实现过程简洁明了,可以复用。原创 2024-05-07 10:56:06 · 409 阅读 · 0 评论 -
Dijkstra算法——邻接矩阵实现+路径记录
本文章介绍了如何实现图的邻接矩阵,并通过邻接矩阵实现 Dijkstra 最短路径算法,文章提供了完整的邻接矩阵实现代码和 Dijkstra 实现代码。并提供了完整的测试用例,打印最短距离和记录路径信息。原创 2024-01-08 13:45:32 · 1053 阅读 · 1 评论 -
thumbnailator 基本使用教程
本文中的 Demo 项目使用 SpringBoot 创建,代码仓库地址:,演示地址:。。使用 thumbnailator 库来操作图片非常的方便,基本上我们使用Thumbnails这个类完成大部分的常见操作,并且使用流式调用使我们的使用体验更加完美,接下来我将介绍几种常见的使用方法。原创 2024-01-03 15:38:46 · 1657 阅读 · 0 评论 -
试用优快云提供的AI创作助手生成关于Java个版本和未来发展的文章【AI】
本文是使用优快云提供的AI创作帮手生成,出本句说明外其余均有AI生成,下面是我让AI列举各个Java版本的新功能和特点。原创 2023-09-08 17:31:23 · 331 阅读 · 0 评论 -
文件分片上传实现过程(附代码)
上传文件是我们开发中常见的功能,上传时会有文件大小的限制,其实这是在保护你的程序不会发生意外和崩溃,因此我们不能一味的修改限制大小。本文详细介绍如何进行分片上传,并附带了前后端完整代码和仓库地址,快来看看吧。原创 2023-09-02 11:39:09 · 485 阅读 · 0 评论 -
EasyExcel读取和设置单元格十六进制颜色示例
本文将介绍如何使用EasyExcel读取Excel文件中单元格的十六进制颜色,然后将其存储至数据库后在进行生成EasyExcel时再通过存储的十六机制值和位置信息进行还原。原创 2023-08-09 15:51:59 · 2596 阅读 · 2 评论 -
Vue3 中使用reactive实现子路由页面改变父页面数据
本文介绍了Vue3通过reactive实现不同组页面中调用共享的值,实例为子页面增删改菜单后主页面的菜单相应的发生变化。原创 2023-03-03 16:17:54 · 1080 阅读 · 0 评论 -
Vert.x 简单介绍
我们都知道Spring系列是目前比较流行的JavaWeb框架,在微服务盛行的当下SpringBoot更是成为了几乎霸主的地位。确实,SpringBoot免去了繁琐的配置并内置了tomcat,可以独立运行,很符合微服务的特性,并在后来有了SpringCloud相关组件的加持使得Spring的地位更加稳固。原创 2022-11-17 13:55:54 · 855 阅读 · 0 评论 -
微信小程序云开发基础版也开始收费了
个人觉得应该推出一个针对于学习和测试的套餐,按量都行呀,现在这……难受!!!原创 2022-11-15 00:14:05 · 7669 阅读 · 1 评论 -
Vert.x 中的路由处理的同步方式
本文介绍了Vert.x Web 路由使用过程中关于阻塞处理器的两种使用方法和效果以及适用场景。针对的是和我一行刚接触Vert.x的初学者。原创 2022-11-09 15:47:02 · 856 阅读 · 0 评论 -
基于SpringBoot+SpringSecurity+Vite+Vue+ElementUI-Plus的认证权限系统
本文介绍的是由SpringBoot+SpringSecurity+Vite+Vue3+ElementUI-Plus为主要框架实现的前后端分离的认证权限系统。实现了用户注册/登录、忘记密码、邮箱激活、用户管理、角色管理、接口管理、系统日志和个人中心等功能,结合redis和JWT实现32位token的安全验证逻辑,更多内容请浏览全文。原创 2022-10-05 12:07:25 · 1611 阅读 · 0 评论 -
Vue3中实现选取头像并裁剪
在一个项目中,尤其是个人中心功能中,免不了要有设置头像的功能,设置时为了最后展示的时候美观好看,一般我们会采取提前截取用户想要的部分,截取时支持放大,缩小,旋转等操作,本文将描述如何在Vue3中实现点击选取图片并裁剪出想要的头像原创 2022-09-23 16:47:27 · 2232 阅读 · 0 评论 -
Vite+Vue3+ElementUI-Plus中全局配置中文
ElementUI-Plus默认的国际化语言是英文,因此,如果想使用中文的化需要单独的配置,配置的方式有多种,本文讲述的是使用ConfigProvider方式配置。原创 2022-09-23 11:08:54 · 4127 阅读 · 4 评论 -
SpringSecurity 5.7.3中使用withObjectPostProcessor遇到的配置无效问题
使用Spring Security 5.7.3 的时候在配置withObjectProcessor时遇到配置无效的问题,主要原因是authorizeHttpRequest的原因,改为authorizeRequest后配置生效,authorizeHttpRequest为Spring Security 官方后续推荐的配置方式,它有新的替代配置方式。原创 2022-09-12 00:21:02 · 2824 阅读 · 1 评论 -
Spring Boot 使用 SSE 方式向前端推送数据
本文通过一个简单的实时进度条案例来说明如何在Spring Boot中使用SSE方式实时的向前端推送数据。原创 2022-08-09 12:51:45 · 1695 阅读 · 4 评论 -
回溯算法在点菜中的应用例子
在看《剑指Offer》的时候看到回溯章节时,书中的举一反三提到了回溯算法可以应用到像点菜这样的场景中。例如,当客人走进餐馆准备吃饭时,服务员会为客人提供一个菜单,菜单上有所有菜品的价格。如果每道菜只点一份,那么可人有哪些不同的点菜方法刚好将身上的钱全部用完?如果客人只想点k道菜,那么又有哪些不同的点菜方法可以将身上的钱全部用完?本文将通过一个Demo来演示上述问题。.........原创 2022-07-22 00:32:26 · 952 阅读 · 0 评论 -
使用原生HTML/CSS/JS加Vanta.js是做一个漂亮的介绍页面
使用纯HTML/CSS/JS集合Vanta.js实现一个漂亮的介绍页面,带演示地址和源码下载。原创 2022-07-14 13:53:08 · 946 阅读 · 0 评论 -
使用Java+OpenCV实现照片人脸识别Demo
使用Java和OpenCV简单的实现一个人脸识别的Demo,Demo会将照片中的人脸使用绿色边框标记出来。原创 2022-06-30 13:32:06 · 694 阅读 · 0 评论 -
使用Jedis监听Redis Stream 实现消息队列功能
之前使用SpringBoot去监听Redis Stream实现了消息队列的功能,本次分享的是使用Jedis来实现同样的功能,而且还可以继续拓展功能,因为Jedis我觉得还是比之前那种方式要灵活。原创 2022-06-25 12:24:07 · 1349 阅读 · 1 评论 -
将实体类集合List<?>转为集合嵌套List<List<String>>(可用于EasyExcel导出数据时SheetData使用)
在使用EasyExcel进行导出Excel文件时如果不使用实体类的方式去导出,而是使用List的方式导出那么每个sheet里面的dataList是一个List>的一个结构,第一层集合表示行,第二层集合中的元素表示每一行的每一列的数据,现在有一下一个需求,由于业务逻辑中导出多个sheet页,每个sheet页对应一个指定的对象,而且里面有一些字段是需要导出对应到Excel中...原创 2022-06-16 14:02:24 · 2909 阅读 · 0 评论 -
Java中高亮字符串中指定的关键字
该方法主要用于在一串字符串中给指定的关键字加上高亮标签,以便前端进行高亮显示,其中的高亮字体和颜色可以根据自己的需求进行修改,下面只是提供核心的实现方法。原创 2022-06-12 20:38:54 · 2062 阅读 · 2 评论 -
Java中使用线程池进行多线程执行结果汇总Demo
简述当我们在执行很多个同一个任务时,例如查询同一条SQL只不过条件不一样,或者对一个数据进行处理等操作时,它们返回的类型或者对象是相同的情况下可以考虑使用多线程执行这些任务,然后将结果进行汇总返回,这样可以提高执行的效率。下面通过一个简单的示例来演示这个合并的过程。实现过程创建线程池首先创建一个线程池,这一步骤大同小异/** * 创建线程池 * @author huhailong * */public class MyThreadPool { private static fina原创 2022-05-30 10:38:32 · 5867 阅读 · 4 评论 -
个人网站重构第一阶段记录
之前得个人网站使用的是spring cloud和vue+element实现的,但是感觉当时是为了使用一些技术而使用,很多臃肿其没有完善的地方,因此决定重构一个轻量的,容易部署的一套个人网站方案。内容展示前端页面:https://www.huhailong.vip,后端页面暂时未映射到公网,计划下一阶段优化后部署。整体技术栈整体使用的是前后端分离的开发模式。服务端使用的是Spring Boot,其中安全框架使用的是Spring Security进行开发的。前端使用的是Vite+Vue3+Elemen.原创 2022-05-19 16:17:14 · 179 阅读 · 0 评论 -
避免频繁请求登录的一种解决方案(无验证码方式)
最近在重构之前自己的一个网站系统,在进行到登录认证这块想将输入验证码的方式去掉,改为动态的根据请求频率来限制,因为输入验证码的体验其实并不是很好。以下的解决方案只是我目前想到的一种,就是通过登录的IP和频率来检测。演示视频 防止频繁请求登录的种解决方法(不使用验证码实现) 解决方法整体的方案分为以下几步:用户请求登录接口时将请求的IP地址和请求的时间记录,对应的时间加500毫.原创 2022-05-13 10:04:31 · 1275 阅读 · 0 评论 -
Java中比较两个对象
在Java中比较两个对象我们知道不能使用==来进行比较,例如在比较两个字符串时要使用equals方法来比较。但这里需要注意的是String、Integer等一些包装类已经替我们重写了equals方法,下面是String类的equals 方法public boolean equals(Object anObject) { //如果对象是自己的引用则直接返回true if (this == anObject) { return true; }原创 2022-05-06 15:22:02 · 3765 阅读 · 0 评论 -
使用Vite搭建Vue3+ElementUI-Plus项目过程
本文主要记录使用VIte搭建一个Vue3+ElementUI-Plus,以及集成Vue Router的过程。本次搭建过程的Nodejs版本为 V16.14.2创建项目初始化项目使用vite创建一个vite+vue的项目npm init vite@latest my-vue-app -- --template vue注意:npm7+后面需要多添加的双横杠my-vue-app是项目的名称,可以根据自己的需要修改,后面--template vue表示创建一个vue模板项目。添加依赖并运行然后.原创 2022-05-06 13:56:04 · 10324 阅读 · 4 评论 -
Vue3中使用原生HTML5拖拽属性实现任务管理小功能
演示视频 使用HTML5拖放特性实现一个任务管理小功能 实现功能可以自己定义新增和配置任务面板可以在任务面板中添加多个任务不同面板中的任务可以拖放到其他面板中,并且拖放完成后自动请求后台修改接口总体上我目前只需要上面的这些功能,方便自己在开发过程中清晰的知道自己需要做什么,以及完成了什么。实现过程整体使用的是原生HTML5中的拖放特性来实现的。废话不多说,直接上代码&l原创 2022-05-02 21:24:03 · 1108 阅读 · 1 评论 -
Vue中Echarts动态数据的实现
最终效果实现过程引入Echarts依赖npm install echarts --save模版文件代码<template> <div class="home"> <h1>Echarts 动态数据</h1> <button @click="start">开始执行</button> <button @click="stop">停止执行</button&g原创 2022-04-21 22:06:54 · 11212 阅读 · 0 评论 -
CentOS系统修改时区
查看当前时区ls -l /etc/localtime我目前这台服务器的时区时美国纽约时间查看时区选择列表tzselect执行tzselect后会出现上图的选择内容,我们输入5来选择亚洲时区,接着会有下图然后接着输入9,表示选择中国接着选择北京时间或者新疆时间,这里我输入1然后可以看到它显示了对应的时区该设置为什么,并且显示了对应的时间信息。接着最后输入1退出即可。更改时区timedatectl set-timezone 'Asia/Shanghai'...原创 2022-04-20 10:01:08 · 1009 阅读 · 0 评论 -
SpringBoot 中 MyBatis-Plus 集成动态多数据源过程(亲测可用)
使用场景当你的项目中使用到多个数据源或者需要在程序运行过程中动态的添加数据源时可以参考本文中的实现。这里使用的是dynamic-datasource-spring-boot-starter ,它是一个基于springboot的快速集成多数据源的启动器。具体文档:dynamic-datasource-spring-boot-starter官方文档。Demo环境与版本JDK1.8SpringBoot 2.6.6MyBatis-Plus 3.4.1dynamic-datasource-spring-原创 2022-04-12 23:59:14 · 4685 阅读 · 3 评论 -
Nodejs处理Json文件并将处理后的数据写入新文件
问题描述事情是这样的,朋友让我处理一个json文件并将处理后的数据写入新文件。这个json文件的结构如下:[ { "head_img": "http://wx.qlogo.cn/mmhead/xxxxxxxxxxx", "nick_name": "xxxxxxx", "user_name": "", "wxid": "wxid_xxxxxxxxxxxx" }, ...]这个json文件中的这个json数组大小是25w原创 2022-04-10 20:46:51 · 2650 阅读 · 0 评论 -
Element-UI上传组件自定义进度条不使用默认
最终效果实现步骤首先隐藏el-upload组件自带的文件列表和进度:将show-file-list赋值为false实现on-progress钩子函数,使用它的自带参数获取上传进度和总文件大小整体测试代码<template> <div class="upload-test"> <div class="upload-item"> <!-- <div class="file_name">测试上传文原创 2022-03-29 11:54:49 · 2868 阅读 · 0 评论 -
JDK17中新的特性之密封类
Sealed Classes (密封类)在JDK17中添加了密封类。密封的类和接口限制了哪些其他类或接口可以拓展或实现它们。密封类这个新的特性在JDK15和JDK16中作为预览功能。现在在JDK17中作为正式的功能,它与JDK16相比没有任何变化。密封类的作用和目标允许类或接口的作者控制负责实现它的代码。提供比访问修饰符更具声名性的方式来限制超类的使用。通过为详尽的模式分析提供基础来支持模式匹配的未来方向。密封类示例我门首先定义一个密封类——Shape,这里定义成了一个抽象的密封类,也可以原创 2022-03-27 15:19:23 · 1295 阅读 · 0 评论 -
通过一个例子了解Java中Stream的基本操作
说明JDK1.8中提供的Stream可以提供很方便的方法去操作List集合而得到我们想要的结果。下面通过一个程序实例演示一下一些基础的用法,当然还有很多操作,本例知识基础的用法,了解用法后和可以进行多种组合和探索更多的处理方法。代码package test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream原创 2022-03-17 16:32:51 · 301 阅读 · 0 评论 -
Markdown插件mavon-editor上传图片
最终效果实现方法这里只着重说明mavon-editor如何上传图片,其他更多配置可参考文档:mavon-editor文档。<mavon-editor ref="mdedit" class="editBox" :ishljs="true" :codeStyle="code_style" :externalLink="externalLink" @imgAdd="imgAdd" v-model="blogConte原创 2022-03-13 11:56:38 · 2912 阅读 · 2 评论 -
Vue中通过自定义指令实现动态改变网页标题
场景需求在使用Vue开发的单页面应用中想实现网页的title根据页面的不同或者点开文章的不同动态改变titile为我们自定义内容或者是文章的标题。最终实现效果首页点击文章时以上为三个页面的展示,其他页面同样可以根据自己的需要自定义不同的内容。Vue自定义指令在Vue中除了可以使用Vue自带的指令也可以自定义指令来实现对DOM的底层操作。详细使用文档请参考Vue官方文档。实现方法这里演示的是以Vue-cli脚手架搭建的项目等使用过程。在main.js中添加如下代码://改变标题方法原创 2022-03-12 11:35:59 · 1786 阅读 · 0 评论 -
JavaScript——找出数组连续和为指定sum的开始和结束索引
在看问答区时看到这样的一个问题:“已知一个包含n个数字的数组A,其中连续多个数字的和为sum,请找出该连续数字的初始索引start和结束索引end”当然,你可以使用嵌套循环来解决,我这里提供一个使用一个循环解决的方法,目前我测试是没有问题的,分享出来,如果有不适用的例子请大家留言const arr1 = [7,5,4,3,1,2,3,4,5,6,0] //测试1const arr2 = [1,2,3,4,5,6,7,8,9,0] //测试2const arr3 = [10]原创 2022-02-15 15:53:58 · 651 阅读 · 0 评论 -
基于nodejs爬虫demo实现云开发菜谱小程序
前面的博客中提到为了节省服务器的成本和部署我将本来基于springboot+jsoup的菜谱爬虫使用nodejs实现,这样就可以使用微信小程序的云开发进行部署了,现在菜谱小程序已经完成切换。基于的nodejs爬虫代码仓库地址https://gitee.com/hlovez/node-reptile.git...原创 2022-02-14 12:58:17 · 436 阅读 · 0 评论