自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 浅析RSA非对称加密算法

在文章正式开始之前先讲一个小故事,在公元前58年时,凯撒带领他的军队征战四方,由于当时的通信手段远不及现代这样迅速便捷,书信甚至口头传文便是司空见惯的事情,即使在军队中也不例外。而这种方式带来的问题便是如何保证信息不泄露呢?对于当时的军队而言协同作战时信息泄露是非常可怕的事情,因此凯撒研究出了一种适用于当初场景下安全传输的方法,从而带领军队大获全胜。到底是什么样的方法使得凯撒在那个时期所向披靡呢?再往下看便会知道答案。

2023-11-21 00:32:32 365 2

原创 抽丝剥茧,Redis使用事件总线EventBus或AOP优化健康检测

在上一篇《深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(二)》中,通过在SpringBoot中使用Quartz实现了Redis健康状态的检测,虽然一定程度上解决了Redis的连接问题,但仍存在一些问题,比如当Redis在定时检测的间隔时间内断开连接时,此时有用户请求进入时仍然会出现服务不可用的状态,那么有办法能够在Redis断开时通知到SpringBoot程序,进而实现Redis到MySQL的切换呢?本文将在之前的基础上使用Redis的事件总线机制来解决该问题。

2023-10-25 12:55:40 330

原创 深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(二)

在上一篇文章中对SpringBoot整合Quartz做了初步的介绍以及提供了一个基本的使用例子,因为实际各自的需求任务不尽相同因此并未对定时任务的代码做相关填充。本文将对Redis的健康检测进行进一步的实现,并且将尝试逐步缩减相关代码,一步步优化定时任务的创建流程。

2023-10-08 01:07:28 611 2

原创 深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(一)

在悦享校园1.0中引入了Quartz框架实现了对于商家每日的销量统计功能,而目前项目已升级到SpringBoot版本,因此需要进行对应的代码进行调整。除此之外考虑到若Redis出现故障时或使用该项目不想要配置Redis时如何保证该项目正常启动呢?即当Redis出现故障时如何无缝切换到数据库查询数据而不是抛出错误信息?由于项目中整合Redis的客户端为Lettuce,因此可以考虑使定时任务实现对Redis服务的监测从而无感切换数据查询操作。

2023-10-03 17:58:24 458

原创 聚合统一,SpringBoot实现全局响应和全局异常处理

在悦享校园1.0版本中的数据返回采用了以Map对象返回的方式,虽然较为便捷但也带来一些问题。一是在Controller中所有方法均需要实例化一个Map对象。二是当返回数据较多时使用put方式添加信息会容易出现遗漏的问题。在异常处理方面,虽然该版本中对所有异常通过继承RuntimeException的方式来进行封装,但业务异常较多时这一操作就显得冗余,且需要使用上述提到的Map对象包装异常信息。对于以上问题在2.0版本中通过结合SpringBoot来进行优雅的解决。

2023-09-24 23:07:33 437

原创 化繁为简,使用Hibernate Validator实现参数校验(二)

​接一篇文章《化繁为简,使用Hibernate Validator实现参数校验(一) 》博客,本文继续对参数校验相关知识作以延伸。

2023-08-23 00:54:41 171

原创 化繁为简,使用Hibernate Validator实现参数校验(一)

在之前的悦享校园的开发中使用了SSM框架,由于当时并没有使用参数参数校验工具,方法的入参判断使用了大量的if else语句,代码十分臃肿,因此最近在重构代码时,将框架改为SpringBoot后,引入了Hibernate Validator校验工具对参数进行优雅校验(SSM同样可用)。本文将通过实例来演示如何使用该框架。

2023-08-16 00:14:11 892

原创 SpringBoot+Nginx+Redis+MySQL+Quarz+Vue校园商铺平台2.0

最近对原有的项目的代码做了重构处理,框架由SSM升级到SpringBoot,代码编写遵循阿里巴巴编码规约,并引入全局异常处理机制和全局响应,集成Hibernate Validator对参数进行校验,使用smart-doc实现多元化接口文档管理。

2023-08-14 23:42:10 64 1

原创 代码分析Java中的BIO与NIO

通过学习BIO与NIO的相关概念,使用代码方式来实现BIO与NIO模型,进一步对其之间的异同作以理解。

2023-08-08 17:45:55 622

原创 拒绝裸奔,使用jasypt为SpringBoot配置文件进行加密。

平日使用Github上传代码时,不可避免的会遇到一个问题就是配置文件中的敏感信息的处理,如MySQL的用户名密码,Redis的密码等。而如果一不注意提交到Github后,无异于出门不锁还留把钥匙,后果不堪设想, 近些年开源仓库泄露密码事件屡见不鲜,一旦事故发生,面临的不仅是经济损失,更有牢狱之灾,因此作为开发者基本的安全意识还是需要具备。但每次提交代码又需要手动替换内容,属实麻烦了许多,因此有没有一种方式可以对配置信息进行加密,即使误提交后也不用担心呢?当然是有的,我们可以使用开源项目为我们的代码保驾护航。

2023-07-03 19:49:06 1683

原创 2023MySQL8.0二进制安装脚本

鉴于平时使用MySQL都是5.7版本,且均为yum方式安装。而昨日偶得机会,遂尝试以二进制方式安装MySQL8.0,并编写脚本以方便使用。

2023-05-15 01:52:19 364 2

原创 CenOS7.8 多启动项修复,解决“Started Show Plymouth Boot Screen......Warning:dracut-initqueue timeout”问题。

继之前的文章中对ECS镜像导入之后,在本地VMware中使用时总有一点小的瑕疵,即每次启动服务器时总要手动的去将启动项选为第四项才能顺利进入系统,这一操作着实让人非常不习惯,而如果将服务器一直处于挂起状态则会导致系统时间和真实时间有偏差,导致各种各样的问题(如yum源更新报错/minio无法上传文件等),长时间无暇顾及,今日得余将其解决。

2023-01-01 22:52:57 3042

原创 CentOS7.8忘记密码后如何重置

本文中的CentOS是从阿里云ECS服务器上迁移而来的,重置密码流程和普通CentOS7略微不同,但无伤大雅。

2022-08-13 21:43:19 1603 2

原创 Could not resolve placeholder “xxx.xxx” in value “${xxx.xxx}”.....踩坑记录

最近在学习相关时碰到一个问题,在中配置了yaml文件后,无论如何都无法在项目中读取,项目加载便会报异常无法启动, 在经历了修改等诸多操作耗时一天未果之后,终于将其解决。

2022-07-13 18:50:23 1610

原创 Java8中的Base64工具使用

在之前的项目中因为使用了Base64编码,而导入了sun.misc.Base64Encoder这个包,每次在使用maven打包时控制台总输出警告:Base64Encoder这个API将会在未来的版本中移除。查阅资料后发现自Java9开始已经不支持这个API,应使用java.util.Base64这个包代替。...

2022-07-06 12:40:31 3069

原创 Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully.....

Cause: com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 426,962,099 milliseconds ago. The last packet sent successfully to the server was 426,962,100 milliseconds ago. is longer than the server

2022-04-30 12:06:18 3323

原创 SSM+Nginx+Redis+MySQL+Quarz+Vue实现校园商铺平台

前言此项目为解决大学生群体校园生活中日益凸显的需求问题,基于SSM框架构建了一个校园商铺平台系统。平台包含用户、商家、管理员三大模块,用户模块中包含查看商品、添加购物车、购买商品功能,商家模块包含商品、类别、商铺管理等功能,管理员模块包含用户、头条、区域管理等功能。系统引入Redis缓解数据库压力,Nginx配合Tomcat实现动静分离,使用CentOS部署项目,极大提高系统的安全与稳定性。技术架构...

2021-08-05 02:12:22 787 6

原创 小爱课程表——树维教务系统适配源码

注:由于官方目前仍未解决X-Request-Width问题,暂时无法进行E2E测试,源码可供学习参考。官方开发文档开发思路官方文档中为我们提供了源码

2021-08-05 02:06:36 3178

原创 阿里云电话一面凉经

过程曲折,权以记录。1.项目相关提问。2.资源跨域问题。3.KMP,快排算法。4.登录原理。5.cookie禁用情况下,Session是否可用。6.复制cookie,跨浏览器是否可用。7.HTTP状态码。8.HTTP和TCP之间的关系。9.HTTP除浏览器发起请求外,使用其它方式。10.栈和堆,栈和队列之间的区别。11.双向链表的实现。总结:面试官很nice,感谢提供的这次面试机会。建议:学习偏向项目开发,应更加注重基础知识。校招更加考察基础知识多一些。

2021-04-13 16:46:26 224 4

原创 2021阿里云ECS镜像导入本地VMware虚拟机

近期购买的ECS服务器快要到期了,而自己的项目还未完成,重新在本地配置虚拟机会很麻烦,通过阿里云的镜像服务,将服务器资源导入到虚拟机中便于使用。如果忘记系统的版本信息,使用如下命令查看首先需要开通OSS服务,......

2021-02-08 18:36:41 13890 27

原创 记一次CentOS7因Redis配置不当导致被Root提权沦为矿机修复过程

黑客,root提权,虚拟货币,服务器入侵。未曾想过,那些年在脑海中一闪而过的幻想,竟在2020这个充满魔幻的年份,变成了现实。前几日傍晚突然收到了来自阿里云安全中心的提醒,服务器疑似受到攻击了。想不到我那用作学习的机器,有朝一日竟然沦为矿机。刚买完晚餐的我,突然就觉得手里的吃的不香了。打开手机试着访问自己的项目网站 ,果然,连接不上了。根据云安全的提示,对可疑的进程使用kill命令直接结束。但阿里云平台仍然不断提醒我警报未消除,尝试去查 “载荷投递” 却一无所获。服务器也一度因为端口恶意扫描而被多次

2020-12-26 13:17:44 9009 27

原创 项目出现:org.springframework.beans.factory.CannotLoadBeanClassException

今天在运行之前写的一个项目时出现org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.study.o2o.util.EncryptPropertyPlaceholderConfigurer]异常,错误信息显示无法找到这个类,但排查后发现对应的类存在于项目中EncryptPropertyPlaceholderConfigure 类一番折腾无果后,找到之前记录的开发日志内容,发现可通过如.

2020-10-24 21:26:16 1837

原创 从ECS到Serverless,开发成长那些事

2020,对所有人来说注定是难忘的一年。转眼已是八月的尾巴,还未来得及细细品味这夏日时光,开学的日子就又要到来了。我计较这变化的数字,在日常与Bug斗争中忙里偷闲。回忆学习历程,我发现在写代码这件事上,明显感觉到与别人有巨大的差距,许多容易的概念在我这里理解起来变得困难,更多的时候在写代码时一些常用的方法我不得不去依赖搜索引擎找答案。于是每天的写代码的生活逐渐转变为写Bug,但我竟对此仍乐此不疲。时间拉回到一月份,此时的我正享受着为数不多的寒假。某天夜里打完游戏我开始思索,自己的知识储备严重不足,没

2020-08-29 16:57:03 451 1

原创 阿里云开发训练营Day7

Midway Serverless 一体化应用开发创建应用选择实验室,解决方案选择Midway Serverless OTS数据库示例加载依赖npm run dev引入文件修改项目 public/index.html 文件内容如下<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" hr..

2020-08-13 15:48:49 159

原创 阿里云开发训练营Day6

Midway Servless 及 MySql数据库进行开发创建应用安装依赖npm i修改内容打开index.ts 文件,编写查询语句 @Func('todo.sum') async hander(){ const result = await this.db.query('select count(*) as sum from todo'); return result; }修改f.yml文件内容,添加如下内容sum: handl

2020-08-10 20:36:31 89

原创 阿里云开发训练营Day5

Midway Serverless 数据库实战实现一个简单的todo list应用创建项目选择实验室,解决方案选择 Midway Serverless OTS 数据库

2020-08-10 12:24:37 95

原创 阿里云开发训练营Day4

Koa以及Koa中间件使用Koa 是一个Node.js Web FrameWork相关概念 Router 路由创建新应用解决方案选择KOA应用迁移方案添加依赖npm i使用koa模板安装koa-ejsnpm i -S koa-ejs安装koa-viewsnpm i -S koa-views新建views文件夹存放ejs文件编辑index.ejs...

2020-08-07 03:32:14 140

原创 阿里云开发训练营Day3

Midway Servless函数开发创建一个新应用,解决方案选择Midway Serverless加载应用依赖npm i启动应用npm run dev复制url访问项目编写index.ts自定义需要返回的内容配置f.yml访问测试浏览器输入 url/api/show (url为对应的域名)...

2020-08-07 01:22:20 72

原创 阿里云开发训练营Day2

今天的学习是与Midway Servless相关特点跨多云平台 方便在传统应用和弹性容器之间迁移 在应用和函数部署之间切换的framework环境搭建此处使用了Day1中创建的应用(也可以自行创建新的应用,方法同Day1中的创建一个新应用,解决方案选择Midway Serverless)点击应用的开发部署,连接至Cloud IDE在终端中查看当前node版本node -v安装midwayjsnpm i @midwayjs/faas-cli -g基本命令使用.

2020-08-06 15:15:12 104

原创 阿里云开发训练营Day1

最近参加了阿里云的云开发活动,将学习内容做一下记录。Serverless特点: 开箱即用、使开发者更加专注业务创新、按量付费、开发轻量化1.创建团队(企业)https://help.aliyun.com/document_detail/162106.html?spm=a2c4g.11186623.6.545.10696341eQHJsh2.创建一个新应用在左侧菜单栏选择 “应用列表” 后点击创建新应用技术场景选择WEB,解决方案选择NodeJS存量应用迁移方案填写应用相关

2020-08-06 02:17:59 157

原创 【阿里云高校计划】-云计算7天实践训练营-Day7

今天是训练营的最后一天了,今天的任务是要搭建一款个人网盘。连接ECS服务器安装 OwnCloud执行如下命令:配置镜像源地址rpm --import https://download.owncloud.org/download/repositories/10.0/CentOS_7/repodata/repomd.xml.keywget http://download.owncloud.org/download/repositories/10.0/CentOS_7/ce:10.0.r

2020-06-28 20:06:06 183

原创 【阿里云高校计划】-云计算7天实践训练营-Day6

今天的要解决的是道算法题,但奈何对算法仍一窍不通,故先做记录,待后期来解决;题目:(来源于阿里云在线编程)思路:(来源于阿里云开发者社区)个人理解:通过输入的正整数n可知a,b字符串的长度。可以通过建立a,b两个数组来存放两次选中的字符串,使用reverse方法来判断是否符合标准,设置标志位来记录总的方案数;通过二进制枚举以及对称性划分,枚举二进制可以列举出所有的存在的可能性,通过0,1来表示当前字符串被选中的状态,通过对称性来确定方案。此处先对思路做简单记录,...

2020-06-28 00:59:19 192

原创 【阿里云高校计划】-云计算7天实践训练营-Day5

对之前的实验的一个补充云存储OSS使用初体验登录服务器使用如下命令,进入网站的根目录# cd /alidata/www/default使用ls查看文件夹内容查看页面内容cat index.html进入到 /alidata/www/default 目录中,执行如下命令,进入 cfg.json的编辑页面,并修改OSS的配置信息。vi cfg.json使用如下命令上传图片(依次上传01,02,03,04)python oss_upload.py 01.pn.

2020-06-27 01:07:57 224

原创 【阿里云高校计划】-云计算7天实践训练营-Day4

SLB负载均衡1.消除单点故障2.分发网络请求3.自动检测服务器状态4.服务器防护能力增强,配合ECS使用

2020-06-26 00:06:59 215

原创 【阿里云高校计划】-云计算7天实践训练营-Day3

RDS操作过程的一些记录登录控制台后在数据库中选择云数据库RDS版 ,进入阿里云RDS管理控制台。进入实验资源 云数据库RDS实例 的管理控制台。创建RDS数据库登录数据库导入数据后查看查看诊断报告阿里云高校计划活动火热进行中,欢迎各位小伙伴加入,与大佬们一起学习,共同成长。活动二维码:活动地址:https://developer.aliyun.com/adc/college/?spm=a1z389.11499242.0.0.654..

2020-06-25 01:42:58 423 1

原创 【阿里云高校计划】-云计算7天实践训练营-Day2

今天的任务是了解阿里云和掌握云服务器ECSECS服务器初体验登录服务器使用vi命令修改index.html页面输入公网IP查看效果云服务器的数据备份和恢复查看磁盘分区创建快照磁盘回滚删除test.txt停止ECS服务器实例,执行回滚磁盘操作再次登录服务器数据盘挂载到挂载点 /alidata 后 不难发现 数据已恢复阿里云高校计划活动火热进行中,欢迎各位小伙伴加入,与大佬们一起学习,共同成长。活动二维码:..

2020-06-24 00:34:01 450

原创 【阿里云高校计划】-云计算7天实践训练营-Day1

第一次没有赶上的活动这次总算赶上了,只是期末事情事务繁忙,也只有晚上抽时间做了。今天是搭建自己专属的静态网站与云笔记。ECS服务器以及VuePress 需要具备一定基础的Linux命令能力思维导图如下tree 命令可以查看文件夹树状结构 对于隐藏文件 需要加上参数 -a即 tree -a 来查看文件夹信息阿里云高校计划活动火热进行中,欢迎各位小伙伴加入,与大佬们一起学习,共同成长。活动二维码:活动地址:https://developer.aliyun.co..

2020-06-23 02:02:40 367

原创 【阿里云高校计划】达摩院特别版-视觉AI训练营Day5

今天便是训练营的最后一天了,回想起来,这五天的时间真的过得飞快,恍如昨日一般。而我常因为Bug而无法自拔,在黑夜中摸索思绪,期待着下一秒便能寻找问题的回答。最后的作业是需要结合所学,写出一个自己的视觉识别项目。想到自己经常看到喜欢的文字便截图保存,但时间一久图片越来越来越多,有时候想找图片却只依稀记得几个断断续续的字词,其他就什么也不记得了。基于此我将项目名命为寻它,即在图片中能寻找到它,而由此引出的问题是,图片上的文字搜索精度,目前只能定位到包含关键字符的行,对于更精准关键字完全适配还是有待优化的。

2020-06-10 11:43:48 361

原创 【阿里云高校计划】达摩院特别版-视觉AI训练营Day4

最近实在太忙了,补发一下Day4博客。不知不觉已是训练营计划的第4天了,今天的项目是需要写一个汽车保险系统。而阿里云视觉开放平台也提供了相关的Api,通过调用,可以很方便的对图片内容进行识别。基本思路:本地前端上传图片后,后台获取图片内容并调用阿里云提供的api,识别成功后将调用结果返回前端。由于近几天需要实习,并且期末考试,没有太多时间去写代码,便使用了Day2中的代码,方便使用。前端页面图:调用接口后返回数据图片显示有些Bug,这里把要识别的图片贴上来识别结果:

2020-06-10 11:05:00 270

原创 【阿里云高校计划】达摩院特别版-视觉AI训练营Day3

又是这个时间点了,emmmm, 今天是第三天的智能电子相册。在Eclipse中发现@slf4j注解未起作用解决方法如下:1.下载lombok.jar2. 放到eclipse.exe的同级目录下3. 执行 java -jar lombok.jar 在之后弹出的界面上选择eclipse的路径。完成lombok的安装4. 在eclipse.ini文件最后加入下面两行(注意:下面的第二行根据实际路径来写)-Xbootclasspath/a:lombok.jar-javaa...

2020-06-07 03:52:04 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除