自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 揭开ThreadLocal的真面目

从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。就是它提供线程内的局部变量,不同的线程之间不会相互干扰(线程隔离),这种变量在线程的生命周期内起作用,减少同一个线程内多个函数之间一些公共变量传递的复杂度。

2024-04-28 17:29:36 613

原创 CompletableFuture入门

Future 类是异步思想的典型运用,主要用在一些需要执行耗时任务的场景,避免程序一直原地等待耗时任务执行完成,执行效率太低。举个例子来说:当我们执行某一耗时的任务时,可以将这个耗时任务交给一个子线程去异步执行,同时我们可以干点其他事情,不用等待耗时任务执行完成。等我们的事情干完后,我们再通过 Future 类获取到耗时任务的执行结果。这样一来,程序的执行效率就明显提高了。在 Java 中,Future 类只是一个泛型接口,位于Future 在实际使用过程中存在一些局限性比如。

2024-04-25 11:04:47 671 1

原创 Java自定义线程池详解

顾名思义,线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息,例如已完成任务的数量。总结一下使用线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

2024-04-25 10:23:27 710 2

原创 Springboot中分别使用Jackson和FastJson操作json

【代码】Springboot中分别使用Jackson和FastJson操作json。

2024-04-15 08:56:30 203

原创 浅谈Springboot消息转换器

表示完全自己控制mvc配置,也就是说所有配置都需要自己重写,所有默认配置都没了!有时会导致很多请求进不来,或者参数转换出错之类的,所以在大多数情况下使用第一种方案就好。对象映射器与上面一样,不再重复。

2024-04-10 22:18:52 183 1

原创 springboot整合WebSocket,使用@AutoWired注入为null的问题

WebSocket是多对象的,每一个用户连接到的都是不一样的WebSocket对象,而Spring管理的都是单例的对象,所以WebSocket并不是被Spring创建管理的,当然属性就注入不进去喽。

2024-04-09 17:11:25 157

原创 springboot整合mybatis-plus报错

我的springboot版本是3.2.4,引入的mybatis-plus-boot-starter的版本是3.5.5。

2024-04-09 10:45:36 412 1

原创 浏览器自动添加属性display:none

今天部署项目的时候又遇到了一个奇葩的问题,在本地运行的时候明明好好的,部署到服务器上时,突然有一块内容不显示了。②或者让插件不拦这个网站,但这个只能解决自己的问题,万一别人也用这个插件,别人也看不到那块内容。的问题,估计对于一些特定的css类名 ,它不允许吧,我的那块内容的css类名是。,可是我的代码上根本没有这个属性,上网查资料,发现是浏览器插件。①改一下类名就行,我改成了chat-container就行了。打开浏览器控制台,审查元素,发现那块内容被加上了。,可能是gpt是关键词?

2024-04-09 09:56:32 488

原创 记录一下第一次使用FFmpeg

使用scale来过滤流 (字面上也好理解,缩放用的): 设置要输出的视频帧数,这里选择视频的第一帧。: 输出宽度为500:高度等比缩放的图片。: 覆盖输出文件,并且不询问。下面记录一下两条常用指令。

2024-03-29 00:12:27 125 1

原创 ThreadLocal的使用

在set的时候,组装好数据将map存到threadlocal里,同样举个例子,仅供参考。如果需要存入多个值,可以将泛型改为Map。

2024-03-28 23:21:49 125

原创 @Transactional(rollbackFor=Exception.class)的作用

Transactional注解中如果不配置rollbackFor属性,那么事务只会在遇到。如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。,可以让事物在遇到非运行时异常时也回滚。

2024-03-28 23:02:52 207

原创 多环境开发下springboot配置文件的编写

最后在application.yml中添加一个属性,指定生效的配置文件,以开发环境为例,在遇到有差异的配置属性的时候,在application.yml中用${}注入属性。新建application-prod.yml 用来写上线运行相关的配置。另外新建application-dev.yml 用来写开发相关的配置。在application.yml中写入公共的配置。

2024-03-28 22:49:21 249

原创 前后端分离项目部署的时候,nginx配置反向代理

/ 这里写的是你要转发的主机地址。那么实际经过nginx转发之后就是http://localhost:8080/user。例如:原始请求是http://123.123.12.123/api/user。在nginx的配置文件中,添加如下配置。

2024-03-11 16:38:58 452

原创 vue项目部署到服务器上路由模式为history时,刷新页面报404的问题

如果前面两个都匹配不上的话,就会重写到index.html,因为这个index.html使我们项目的入口,index.html里面会读取当时打包好的js文件,就可以读取到路由配置,以实现我们浏览器的url对应的路由页面。root 你的项目路径 //如果前面没配的话,记得加上,前面配了,这一行可以省略。重启 nginx,然后随意刷新浏览器,再也不会出现404 问题了。因为前面配了root路径,所以下面就可以不加root。在nginx配置文件中添加以下配置项。

2024-03-11 12:09:47 611

原创 部署到服务器后前端传递的token后端接收不到的问题

前端传递的token,后端死活都拿不到,导致请求都被拦截器拦截下来,返回未登录的状态码,前端传递的token名字是tt_token,在本地运行的时候是完全没问题的(本地没用nginx做代理),甚至在postman上测试也是可以接收到token的,但是部署到服务器上时(用了nginx做代理),后端就接收不到了。NGINX将静默地丢弃带有下划线的HTTP标头,这样做是为了防止在将头映射到CGI变量时出现歧义,因为在该过程中,短划线和下划线都映射到下划线。

2024-03-11 09:00:50 675

原创 对 “(handler instanceof HandlerMethod)“的见解

做项目的时候遇到的一个小坑,在这跟大家分享一下,前后端分离的项目,都是在自己电脑上跑的,在后端写了个拦截器,用来拦截登录以外的请求(用于鉴权),但在写完测试的时候发现,前端就算是有token,请求依然失败。在自己电脑开发前后端分离的项目,难免会遇到请求跨域的问题,当然解决跨域的问题,我就不多赘述了,这里我用的是最简单的方法,在controller类上加@CrossOrigin注解来解决跨域。,即预检请求,后端若接受该跨域请求,浏览器才继续发起正式请求。时,由于安全的原因,在。浏览器会在正式请求之前。

2024-03-07 00:36:32 629 2

原创 SpringBoot返回给前端的时间格式的问题

将返回的时间格式格式化为"yyyy-MM-dd HH:mm:ss",这样就可以全局的解决时间的格式问题,不需要在实体类上添加注解。

2024-03-06 20:29:22 367 1

原创 了解Spring Cache

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化了业务代码的开发。Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:EHCacheCaffeineRedis(常用)

2023-11-04 15:45:29 51 1

原创 通过RestControllerAdvice注解和ExceptionHandler处理全局异常

这两个注解的组合,被用来项目的全局异常处理。一旦项目中发生了异常,就会找到使用了。注解的方法,我们可以在这里处理全局异常,将异常信息打印或者返回给前端。

2023-11-03 18:12:16 73

原创 Springboot使用PageHelper插件分页失效

今天又遇到一个小坑,在用springboot整合PageHelper插件的时候,发现插件竟然没法正常分页,把数据全查出来了。后面将PageHelper的版本换成1.4.7就正常了,估计是版本不兼容导致的。

2023-11-02 15:55:01 201

原创 Java中Date和LocalDateTime

Date类在内部表示日期和时间时,会考虑当前的系统时区。而LocalDateTime是不带时区信息的类,它仅仅表示日期和时间,没有时区的概念。如果需要处理时区,可以使用ZonedDateTime类来表示带有时区的日期和时间。就行,这样子就没有时区的问题了,其实字面意思也好理解,LocalDateTime就是本地的时间,没有什么时区,就是单纯的日期和时间。在注解中加上timezone="GMT+8"

2023-11-01 21:34:49 68

原创 Springboot自动配置原理(超详细)

这个注解会默认扫描该类所在的包下所有的加了@Component注解的类,当然包括其衍生的注解@Service,@Controller,@Repository,相当于之前的,然后将其扫描到的类注入到spring容器中,成为bean。这也正是springboot优雅的地方,它将很多常用的技术列了出来,在项目加载的时候一起加载进来,但我们可以根据自己的需要添加相对应的坐标,而只有我们需要的技术才会被会真正加载进来,得以使用相对应的技术。供后续需要使用的时候用。

2023-09-25 16:57:21 274 1

原创 RocketMQ启动闪退的问题

今天下载了RocketMQ,版本是5.1.3,进入到bin目录双击mqnamesrv.cmd的时候命令行一闪而过。百度了一下原因就是RocketMQ是按着JDK8的配置做为启动的。解决方法:把环境变量中的jdk版本换成jdk8的就解决问题。

2023-09-23 08:05:41 364 1

空空如也

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

TA关注的人

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