- 博客(119)
- 资源 (10)
- 收藏
- 关注

原创 Aop+自定义注解对入参进行操作(过滤、解密)
背景:对外提供接口,为了数据安全,接口入参进行了数据加密,接口收到参数后需要进行解密;如果每一个接口都要对入参进行一 一的解密操作,就大大增加了代码量和工作量;所以,这里使用自定义注解加Aop进行无侵入式的操作;第一步:自定义注解package com.example.demo.common;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.ann
2020-07-21 17:44:47
4972
原创 为什么不能在foreach循环中进行元素的remove/add操作?
不要在for/foreach循环中进行元素的remove/add操作,为什么?因为会报错。这不是废话吗,具体说明原因呢,这里简单的来看看怎么回事。比较官方的回答:某些集合(如 ArrayList、HashMap等)在添加或删除元素时,会调整其内部数组的大小或重新排列元素,可能会导致迭代器遍历到错误的索引或元素,从而破坏集合的完整性。不仅如此,在同一个集合被多线程读写过程中也会有同样的问题,比如一个线程在遍历,同时其他线程在进行remove/add操作,同样会抛异常。
2025-02-10 11:03:11
297
原创 minio桶设置权限
minio的桶Bucket权限设置,如果设置为private,文件的访问或下载需要URL带上签名。如果设置为public,直接通过文件的URL就能访问或下载。
2024-11-28 16:10:04
3506
原创 登录时用户名密码加密传输(包含前后端代码)
登录时用户名密码加密传输,这里使用RSA非对称加密,前端使用公钥加密,后端使用私钥解密,这样就不会暴露私钥。
2024-10-18 15:34:39
3146
1
原创 jvm内存溢出问题排查Java服务自动停止问题排查
Java服务自动停止,Java服务内存溢出问题解决记录。过程描述:服务器上的一个项目突然服务不了了,登录服务器一看,服务被停了,第一反应大概率就是内存溢出导致的,结果查看日志没有任何报错,就很奇怪,然后就在启动命令里面加上了一个命令,该命令的作用就是在发生内存溢出的时候会自动生成dump文件(jvm内存快照),把该文件下载到本地后用jvisualvm应用打开就能分析出问题。从日志可以看出,由于Java服务占用的内存太多了,为了能保证系统的正常运行,操作系统就把Java服务kill停止了。
2024-10-15 17:54:47
934
1
原创 重装系统后进不了系统
记录一下重装系统后进不了系统并且报错的几种原因。这里记录一下解决思路,系统安装好了,但是就是进不去并且报错,大概就是启动的时候BIOS没有识别到安装系统的硬盘或者BIOS启动引导方式设置错误问题。
2024-10-08 21:39:25
5509
原创 ThreadLocal解惑
比较书面的回答:类如其名,线程本地变量。当使用 ThreadLocal 维护变量时,ThreadLocal 为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程。这句话没问题,但容易被人误解,会被误以为:任意变量用ThreadLocal维护都是线程隔离的。后面会解答这个问题。
2024-08-23 22:43:13
884
原创 【解决】npm install 报错 cb() never called! This is an error with npm itself. Please report this error at
场景:npm install 报错总结一下,出现这个错误主要有两种原因1.npm缓存问题、2.node.js版本问题。附加node.js管理工具nvm的安装教程。
2024-07-28 19:48:57
7078
1
原创 “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)问题
报错的意思是大概就是没找到 nginx.pid这个文件。这个是什么文件呢?nginx.pid文件在启动Nginx时会自动生成,它记录了nginx的进程ID也就是pid, 主要用于管理Nginx进程,例如停止或重启Nginx。当Nginx无法找到该文件时,会导致启动或重新加载Nginx配置文件失败。
2024-07-27 19:29:07
1322
原创 Jenkins流水线部署Maven项目
使用Jenkins的流水线功能,构建部署Java Maven项目,步骤很简单但是有不少细节需要注意。
2024-05-10 15:22:41
2565
1
原创 jvisualVM分析jvm内存使用快照dump
服务发生内存溢出,就需要查看服务器上Java服务的jvm堆内存使用情况,可以使用dump命令生成dump文件,然后下载到本地,然后使用jvisualVM工具打开,即可实现可视化分析。生成dump文件常用的两种方式:第一种:使用命令直接生成。第二种:java -jar启动服务的时候添加dump参数,服务发生内存溢出时自动生成。
2024-04-14 23:00:16
6537
1
原创 jvisualVM远程连接jstatd
使用本地的jvisualvm工具远程连接jstatd。jvisualVM远程连接jstatd一般作为临时监控使用,例如:测试环境做压力测试时需要监控内存、以及其他的指标使用情况;线上服务出现内存使用异常等。如需要功能更全面,更规范的监控方式,可使用一些第三方监控服务,例如:Spring Boot Admin。
2024-04-14 20:33:29
990
原创 springcloud gateway网关动态配置限流
这里简单记录一下gateway网关集成mybatisPlus实现动态限流。gateway网关默认的限流方式各项限流参数都是在配置文件中配置,不够灵活,虽然使用阿里的Sentinel组件可以实现从nacos注册中心、配置中心动态读取配置,但是还是有一定的局限性。
2024-03-13 22:46:11
1564
原创 spring-boot-maven-plugin springboot打包配置问题
springboot项目的pom文件中一般都配置了spring-boot-maven-plugin打包插件,一般情况下,只需要映入 spring-boot-maven-plugin 依赖即可,但是某些情况下还是需要额外配置部分参数。
2024-03-10 19:53:50
1307
1
原创 jar运行报错Unable to read meta-data for class
项目在idea中运行没有任何问题,但是打包部署后就报错了,报错:java.lang.IllegalStateException: Unable to read meta-data for class com.zhh.zhhd.biz.config.Test1Config
2024-03-10 18:03:22
3511
1
原创 springcloud gateway网关
gateway网关功能:服务路由、负载均衡、请求限流、跨域问题统一解决配置、身份认证和权限校验等下面记录一下gateway网关的基本功能和配置。PS:没有使用注册中心。
2024-03-02 13:38:45
698
原创 spring-boot-starter-parent和spring-boot-dependencies介绍
springboot项目的pom文件中,我们经常看见这样(下图)两种springboot的版本依赖管理方式;图片中的这两种依赖声明方式任意用其中一种都可以。文章后面会简单阐述一下区别和使用场景。
2024-03-02 01:42:49
2453
原创 SpringCloud gateway限流无效,redis版本低的问题
在使用springCloud gateway的限流功能的时候,配置RedisRateLimiter限流无效,后来发现是Redis版本过低导致的问题,实测 Redis版本为3.0.504时限流无效,改用7.0.x版本的Redis后限流生效。gateway配置RedisRateLimiter限流,限流过程中会有key存储在Redis中,可以在Redis客户端使用命令 keys * 查看存储的key,key消失得特别快,可以在压测该过程中查看。
2024-03-01 20:59:59
848
原创 RedisTemplate序列化
RedisTemplate默认使用的是JDK 序列化方式(JdkSerializationRedisSerializer) ,这种序列化方式可以不用在配置类里配置,默认即可,这种不推荐使用,这种方式对应客户端来说可读性差,不利于人工排查问题。所以一般用JSON序列化,JSON序列化方式又有两种,GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer,GenericJackson2JsonRedisSerializer配置更简单方便些。
2024-01-01 11:47:46
1488
原创 aop使用自定义注解报错 cannot resolve symbol
aop使用自定义注解报错 cannot resolve symbol '*',自定义一个注解 AuthTest,在aop场景下使用:@annotation(原因:如果自定义注解和aop类在同一个包下,@annotation中就可以只写注解名称,否则注解里面需要写全路径,例如:@annotation(")结果自定义注解报红。
2023-12-04 22:19:07
386
原创 GitHub经常打不开或者访问解决办法
访问慢或无法访问的原因:DNS解析是最为基础的一个环节。由于Github的服务器在全球各地,域名解析所需的时间也会不同,这就导致了在特定地区可能会出现Github无法正常访问的情况。解决:查询到github对应的IP,然后在hosts中配置IP和域名的对应关系,就相当于告诉浏览器目标地址在哪里了。可以ping命令: ping github.com 试一下,刚刚配置的域名IP映射已经生效。文件位置:C:\Windows\System32\drivers\etc。打开hosts文件,追加下面文本到末尾保存。
2023-10-30 21:03:24
2109
1
原创 读取yaml文件的值
记录一下,读取yaml文件中属性的值,这里用Kubernetes的deployment.yaml文件来举例。读取yaml文件中的image的值。
2023-09-17 15:35:58
348
原创 获取spring容器中的bean实例
在开发过程中,我们可能需要动态获取spring容器中的某个bean的实例,此时我们就会用到ApplicationContext spring应用上下文,这里做一下记录,网上很多类似的的工具类。先写好工具类再测试一下是否好用。创建一个bean并注入到容器。
2023-09-17 14:45:18
445
原创 Java判断文件的系统格式编码格式
使用Java判断一个文件的系统格式(亲测可用!),比如我们常见的:Windows格式的文件,Unixg格式的文件,Mac格式的文件;常常有这样的场景:我们在Windows系统编写的脚步上传到Linux系统执行,执行过程中偶尔会出现各种各样奇怪的问题,然后还找不到原因!好了,大概率是脚本格式问题。1.如果有notepad++,直接打开查看右下角,既可以查看当前的文件系统格式,也可以直接点击修改。
2023-08-05 17:02:23
1412
原创 base64: invalid input
类似的编码问题经常出现,比如:在windows平台下创建的shell脚本、文本、文件等等默认都是windows的编码格式,在上传到Linux平台之前或者上传之后记得最好是转一下格式。场景:把一个文件转成了base64字符串,并且存储在一个文本文件中,现在要使用命令把她转回去。2.Notepad++, 窗口右下角有Windows(CRLF)字样,这就是当前文本的编码格式,右键可以选择需要转换的编码。是因为文本编码的问题,文本是在windows平台下创建的,默认编码是windows编码,需要转为Unix编码;
2023-07-17 17:18:46
2577
原创 使用try catch干掉if else
阿里巴巴开发手册不建议使用try cath处理业务逻辑,但是实际开发过程中使用try catch代理if else往往会起到事半功倍的效果。一个简单的场景(实际开发过程中肯定比较复杂):现在要对一个字符串进行多重校验,每个校验写一个方法,然后挨个调用这些方法,一个校验通过后进行下一个校验,直到结束为止。如果使用常规写法,会出现大量的判断和处理逻辑。
2023-07-01 11:12:40
1122
原创 Spring Boot @RestControllerAdvice 全局异常处理
利用注解@RestControllerAdvice 轻轻松松实现全局异常处理
2023-05-27 17:41:37
358
原创 maven本地仓库有依赖包,还会远程下载的问题
明明本地有需要的依赖包,但是maven还是会从远程仓库拉取,如果远程仓库有需要的包还好,如果没有,或者无网络环境下没法访问远程仓库,那就直接报错,走不下去了。原因:在本地仓库的每个依赖包都存在这样的文件:_remote.repositories_remote.repositories中记录了依赖的来源,记录了settings.xml中的id,如果settings.xml中的id发生了变化,就需要从远程仓库重新获取依赖。
2022-12-28 22:07:50
13958
7
原创 SpringBoot生成图形验证码
需求:验证码一码一用,验证之后,不管是成功还是失败,都需要重新获取或者刷新二维码。大致思路:后端生成验证码后还需要生成一个UUID与之对应,存储到缓存(记得添加过期时间),把UUID和验证码反给前端,登录时后端使用前端传过来的UUID去缓存获取验证码,然后和前端传过来的验证码对比(一般忽略大小写)。
2022-12-09 17:21:58
3583
2
Navicat12安装包.zip
2020-07-02
solr定时同步jar包.zip
2020-05-22
eclipseSVN-site-1.10.11.zip
2020-02-23
HttpClient所需jar包
2019-03-07
基于Java FX实现的可视化排序算法
2018-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人