自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零到一部署、发布和上线一个SpringBoot+VUE项目

至此,全部完成,其中有几个连接跳转,希望大家不要见怪,每一个连接都是我自己的文章,只是因为之前既然发布了相同内容的文章,就不占用大量篇幅了,因为上面几个都是报错的解决方法,并不是所有人都会遇到那些报错,因此不在重复赘述,望大家理解。总之,我们需要一个CentOS虚拟机(实际上Ubuntu也可以,或者其他主流虚拟机都可以,如果果只是单纯部署则不需要可视化界面,Ubuntu还是更适合嵌入式),我的CentOS版本是8.0,大家可以自行选择合适的版本。关于相关配置可参考云服务器购买平台相关资料。

2024-08-12 17:05:58 1537

原创 vue前端编译报错解决方法

你会发现问题解决了,再次编译也通过了,并且输入npm run serve也可以跑起来了,但是你又发现了,停掉之后,再跑一遍,又报错了,你再输一遍,就又可以了。首先他报的是一个:defineConfig is not a function,检查你的vue.config.js文件,看是不是格式不正确才导致的报错。然后你就发现idea弹窗提醒了,不必理会,直接npm install或者yarn install重新编译即可。如果确实是正确的,格式一模一样,那就看是不是node.js和npm的版本问题。

2024-01-26 14:43:15 10341 3

原创 SpringBoot的特性之一:AOP

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它的主要目的是通过横切关注点(cross-cutting concerns)来提高代码的模块性和可维护性。在AOP中,关注点是一个应用程序中横跨多个模块的功能,如日志、事务管理、安全性等。AOP通过在关注点周围编织(weaving)切面(aspect)来实现这些功能,而不是在主要业务逻辑中直接插入这些功能代码。通常为了严谨,也为了省略那一串看起来头疼的路径规则,我们还使用自定义注解来指定。

2024-01-19 15:49:46 588 1

原创 JAVA后端实现JWT令牌

首先解释一下JWT,在此之前,我们需要明确为什么需要JWT。

2024-01-09 13:14:08 2505

原创 解决引入第三方SDK导致的依赖冲突问题

通过maven依赖图谱我们发现,所有的日志依赖都来源于spring-boot-starter,这也是Springboot的祖宗依赖,并且,该sdk是一整个完整的SpringBoot工程,而不是常见的模块式。该SDK是完整的SpringBoot工程,而不是模块,模块化 SDK 可以通过适当的 类加载器管理、依赖管理、版本对齐 等方式,确保它的日志框架不会影响到 Spring Boot 项目的日志实现。先被加载,Spring Boot 调用新版本的方法就会失败。,因为类加载器仍然引用的是旧的。

2025-02-14 15:04:37 688

原创 修改SpringBoot项目中MyBatis的mapper.xml文件的位置

将mapper-locations指定为任何文件下的xml文件下的xml格式的文件。完成,别忘记刷新,然后重新构建启动即可。

2024-08-27 17:48:51 669 1

原创 docker拉取MySQL后数据库连接失败解决方案

最后切记,这两种方式是组合起来用的,按照操作完成即可,再次连接,看看是不是连上了。更改安全组之后不需要重启实例,但是要稍微等待一两分钟,他会自动生效。选择你自己的实例然后点击确定即可(不需要重启实例)。其他云平台应该也大同小异,都在控制台中找即可。看到输出success就是成功了。然后点击确定即可(不需重启实例)。

2024-08-09 16:51:22 1106

原创 更换CentOS中docker的镜像源

然后保存退出(按下esc,输入:wq(包含冒号),回车)即可。然后把以下输入去,如果有则替换,没有就输入。记得把里面的网址换成你刚刚在阿里云中复制的。然后重启docker。

2024-08-08 16:22:11 1341

原创 如何购买一台云服务器

由此看来,虽然我们不需要太高,但是也不能太低,否则用户登录就半天,这可不行,如果是小型网站搭建,没有太大的传输量,那么3~5够用, 我说的够用是用户不感到卡顿,但是也不会有多流畅,上传、加载图片速度一秒左右。那这个是越高越好吗,对,太对了,但是奈何钱包太扁,在有限的预算内,怎么选够用呢?,肯定是cpu核心数越多越好 ,但是他贵啊,因此在购买的情况下,并不一定是顶配最好,如果流量不是很大的情况,并且没有特别高的并发,2核2g或者2核4g完全够用。然后点击付款,完成。不用选,都没啥用,花里胡哨。

2024-08-08 15:17:50 1366

原创 java实现罗马数字转中文大写工具类

【代码】java实现罗马数字转中文大写工具类。

2024-07-17 11:46:14 182

原创 SpringBoot基于Redis实现token的在线续期

所以在线续期token是一种很好的解决方案,我的实现思路是:取消原先token自己的过期时长,然后将token存入redis中,key是token,value也是token,存进去什么不重要,重要的是可以根据key去获取value(有效并且没过期),需要的时候随时可以取出来,然后给这个redis一个过期时间,众所周知redis的过期时间是可以重置的,因此在用户每次进行操作的时候就重新给redis一个过期时间即可。这是我们之前的实现思路,也就是给token一个过期时间,然后token过期之后销毁。

2024-06-05 14:32:16 828

原创 解决SpringBoot在使用AOP切片时DATE类型出现Argument is not assignable to ‘lombok.Data‘ 的问题

报错和提示大概是说,无法映射到date这个类,查阅大量资料无果后开始一点点排查,先是去实体类中手写了一个set方法还是不行,然后就发现,反射的实体类字段的类型我写的是Date.class,我就想是不是因为有好几个Date类,所以不知道映射哪一个,然后我就把类改成了jdk的,也就是:java.util.Date.class。场景:在使用aop切片时,里面的自动赋值给updateTime的时候报错。

2024-06-05 14:27:13 395

原创 (笔记)当界面需求较少时直接在DTO类中写逻辑,省去service层

由于我是全栈,所以前后端都是我做(╯︿╰),为了省力气,我直接用的同一个时间范围查询器,虽然在前端我已经将回传的格式转换为yyyy-MM格式,但是由于后端的查询逻辑需要的格式都不相同,例如因为月度表由于需要以yyyy.MM格式在前端展示,因此在分组时我就已经将时间format成了yyyy.MM的格式了,因此查询需要yyyy.mm的格式,但是其他两个又不需要这样的操作,因此做了不同的判断。1:月度表,默认查询近一年的数据,如果有查询条件则按照查询条件,以月份维度进行查询。需求:开发月度报表、总报表、折线图。

2024-06-03 16:33:15 431

原创 vue使用particle.js实现前端可交互的粒子效果(含代码)

然后界面内的东西放在这个div里面就可以了。路径一定要写对哦,路径错了界面就会出不来。ps:这三行都需要,少了任何一行都不行哦。首先我们需要一个实现效果的json文件。然后直接把下面这堆东西复制进去即可。

2024-05-20 14:52:21 1438

原创 解决Vue项目部署到服务器之后前端向后端发送请求报错404的问题(centos使用docker实现nginx的反向代理)

最后,修改配置文件的时候注意一定要细心,比如 location /api/,location后面是有空格的,最后面的/不要丢掉,服务器路径后面的/也不要丢掉,后面的分号也必须要有,分号(;)代表语句的结束,没有分号就会连着执行两条语句,就会报错。最后的最后,我们来分析并解决一下你可能会出现的问题,或者已经出现了的问题。首先就是最后重启nginx之后,发现输入docker ps发现没有nginx,然后输入docker ps -a,发现有nginx这个容器,但是没有端口。

2024-05-18 13:46:57 3208 1

原创 解决el-upload组件上传文件403 Forbidden的问题

也就是不写前面的localhost,而是拼接上发送请求拼接的‘api’即可。可以看到,已经可以发送请求并且后端也接收到了请求并返回数据。并且后端也没接收到任何的请求。

2024-05-14 17:52:59 570

原创 解决报错:Error writing file ‘/tmp/MY76Z3jh‘

可以看到已用90%(我已经删掉部分日志文件了,在这之前是100%)可以看到各个文件的空间占用情况,自己适当删掉日志文件即可。

2024-04-29 16:00:19 630

原创 particle.js实现的前端粒子效果(可交互)(成品代码)

【代码】particle.js实现的前端粒子效果(可交互)

2024-03-15 16:20:17 545 1

原创 启动java程序报错:“jvm堆内存不足”的解决方案

最有效的办法是,直接按住CTRL+SHIFT+ESC三个按键,可以调出任务管理器,查看内存使用情况,可将一些暂时使用不到的应用关闭缓解内存压力。众所周知,堆内存默认大小是物理内存的1/64,而堆最大内存为物理内存的1/4,因此只需要适当提升堆内存大小即可,但是注意不要增加过多,避免影响到其他的应用程序。这可能包括查找内存泄漏,减少不必要的对象创建,或者调整应用程序的配置以降低内存需求。注*即使是万不得已的情况下,也尽量少的去修改jvm的参数,虽然确实可以解决问题,但是风险很大,切记,切记。

2024-01-26 13:47:53 2164 1

原创 解决vue项目中路由跳转不生效

初学vue,自己新建了一个项目,但是很奇怪的是,配置明明都是正确的,但是点击按钮跳转不生效。然后就是查看你的首页是不是直接写到app.vue里面了,如果是的话,那就寄了。首先是确保跳转的地址和路径是完全正确的。

2024-01-22 11:43:47 2639

原创 解决Redis启动不生效或cmd窗口一闪就消失

其实不生效就是因为启动文件没有识别到配置文件,这么操作就是绑定Redis启动文件和Redis的配置文件,中间有个空格,注意一下。然后保存退出,把这个 txt文件改成.bat后缀,双击打开即可。其实很简单,找到Redis的文件夹。可以看到已经正常启动了。

2024-01-22 09:22:06 1126

原创 java的自定义注解的实现

Retention(RetentionPolicy.RUNTIME) // 指定注解的生命周期@Target({ElementType.TYPE, ElementType.METHOD}) // 指定可以使用注解的元素类型// 定义注解的属性,可以有默认值在上述例子中,@Retention和@Target是元注解,用于指定注解的保留策略和可用位置。表示注解在运行时仍然可用,这是因为有些注解仅在编译时起作用。表示注解可以应用于类和方法。在上述例子中,MyClass类上应用了。

2024-01-19 15:59:05 555 1

原创 什么是跨域?如何解决跨域问题?

现在的项目,大部分都是前后端分离的,前后端最终也会分开部署,前端部署在服务器 192.168.150.200 上,端口 80,后端部署在 192.168.150.100上,端口 8080。只要上述的三个维度有任何一个维度不同,那就是跨域操作。那此时就存在跨域操作了,因为我们是在。

2024-01-09 10:31:00 523 4

原创 springboot项目开启swagger方式

开启swagger方法

2024-01-04 14:06:44 1125 1

原创 IDEA清除jsp(java、html)文件的黄色提醒

这里大概就是拼写检查和标签检查一类的,第一个是检查jsp代码的,第二个是检查html标签,第三个是java代码。我们直接关闭就行,点击右方小箭头选择none即可,三个都选择none,不需要检查!瞬间简洁干净了,舒服!不过他是仅作用于当前文件,其他的文件还是需要相同的流程,并不建议全局设置。一堆东西,跟粑粑一样,看着这一对东西,完全没有想敲代码的欲望(借口)。为什么这里也黄那里也黄啊,好恶心。

2024-01-03 13:49:38 849 1

原创 MySql中,字段部分匹配实现(多表查询的on字段的部分值匹配其他表的部分值)

假设,我们有两个表,这两个表就是通过ip进行左连接,并且这两个表都是ip+端口的形式(192.168.2.254:4433 192.168.2.254:3306),但是,我们只需要前面的ip,而不需要端口(存端口是其他的业务需求),此时在进行左连接匹配时,你会发现on不能用,因为他不直接相关,而此时模糊匹配也不能用,因为LIKE是使用短的去匹配长的,他俩一样长啊!现在,我们来进阶使用,所谓的模糊查询。其实,这时候会发现,有什么用吗,无非就是截取了一下,我们回到最开始的问题。

2024-01-02 16:29:07 788

原创 Springboot项目中mybatis和mybatisPlus开启控制台打印SQL执行情况

很多时候我们需要在控制台中看到sql的执行情况,从而判断语句或数据crud结果,需要开启控制台打印.注意一定要注意缩进!很重要,否则就不会生效,yml文件就是根据缩进来判断是否是自己的配置!控制台已经成功打印出sql的执行情况。

2023-12-29 11:17:58 1669 1

原创 查询优化:查询明细时,将主表id分离出来变成单独的list集合,使用in查询明细数据而不是使用单纯的循环查询,以减少对数据库的访问,减轻数据库负担

如果主表数据为10条,本来需要访问数据库1+10次,但是现在只需要访问1+1次即可,大大减轻了数据库的压力.最后,附上代码;大功告成,查询出的数据也没有错误,可能还有其他更好的方法和改进点,恭听各位大佬指点。

2023-12-29 10:59:14 465 1

原创 二进制反码补码和当int类型运算溢出时无符号右移“>>>”的使用

一个开头为1的八位二进制数字,系统会判定为负数,因为int类型的取值范围是:-(2^16)~2^16-1,即只占八位二进制中的后七位,因此最开始的第一位为符号位,0表示正数,1表示负数,由于第二次运算为int正数最大值(right)和int最大值的一半(middle)相加,结果一定会溢出导致最开始的第一位变成1,因此转换成十进制就会判断为负数,即。基于以上二进制减法中遇到的问题,我们可以使用反码进行运算:当一个数字为负数时,可以使用它的反码与其他二进制数字进行运算,所有人往右移一位,最右边的人直接跑路。

2023-08-23 16:45:36 283 2

原创 MySQL语句中avg函数忽略null值解决方法

啊这,按理说应该是值为3000才是,怎么会和上面三个商品的结果是一样的,这是因为sql语句中进行avg函数运算时会直接忽略null值,因此在底层运算中,还是三条数据子在进行计算,但是如果每次把null值转换成0,再转换回去也太麻烦了。所以我们使用一个函数,将其中的null值替换成0,就可以进行计算了:coalesce(data,0)。其中data指的是数据名称,这个函数可以返回此数据中第一个不为null的数值,如果为null就返回0。就很nice,完美解决。

2023-07-24 20:22:51 1081 2

原创 基于java网络编程实现的群聊(简易版)

要实现网络编程首先要实现单发单收,在单发单收的基础上使用多线程使其实现多发多收。然后在此基础上进行改进,以实现“群聊”的功能。实现思路是这样的,由于发送消息的本质是将消息发送给服务器,如果我们在服务器端实现将收到的信息转发给所有的用户,然后每一个用户在进行 “群聊”时都可以接收到由服务器转发过来的其他用户的信息,即可实现群聊的功能。至此,只需要分别启动服务端、服务端启动类、客户端和客户端启动类即可实现“群聊”。而在其中我们添加了一个判断语句,如果检测到发送“再见”,就会退出“群聊”。

2023-07-23 20:15:58 424 3

空空如也

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

TA关注的人

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