自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 问答 (3)
  • 收藏
  • 关注

原创 关于BigDecimal计算除法的精度问题

所以后两种其实是divide的时候结果算出来时5.547-》保留一位变成5.5然后setScale生效,补一个0变成5.50。随后在加上setScale就不会有问题了。

2025-04-15 18:29:26 255

原创 feign拦截器interceptor的一些使用问题

还有一种情况比较少见,就是token是需要刷新的,每次请求的时候我们要先去看redis或者sql里有没有token,没有就需要去获取。你需要调用interceptor本身去拦截的proxy里边的方法去获取token,这就会出现循环依赖的问题,你就需要用@Lazy注解。但是真的不推荐这种写法,虽然使用没问题,但是不美观简洁。1.在proxy调用的时候先判断token有没有,没有就去获取,保证interceptor进去的时候一定有,这样interceptor就可以只依赖redis或者db。

2025-03-26 15:27:09 295

原创 feign配置超时时间

但是在你配置client的时候也可以配置对应的超时时间等参数,options也是可以配置,那二者同时配置的时候到底哪个配置会生效呢?我之前一直很疑惑,知道有一次,option我配置了2s读取超时,client里边是10s,但是最后2s就报错了,我就猜是option的配置会优先,追了一下源码,发现真的是。里边会比较options和client里边的配置是否相等,不相等的话用的就是options里边的配置。feign有很多可配置化参数,其中一个是options,另外一个是client。

2025-01-07 16:02:54 267

原创 feign验签不通过,但是postman没问题

正确的做法就应该是,feign的计算签名这些都通过拦截器来实现,从拦截器里边取出来payload或者body。测试一个外部api的时候发现,同样的签名方法和payload,放在postman请求完全没问题,curl也能通过,但是到了feign就签名错误。而feign是@Headers这种指定header而不是拦截器的方式,计算签名用的是jsonObject,所以导致二者对不上,签名不通过。但是,在feign传参数的时候,因为body是json,会进行序列化,变成。百思不得其解,后来发现了问题。

2024-12-25 18:26:06 528

原创 EasyExcel读取excel中的日期单元格,并且自动判定终止读取

最重要的是判断终止条件的地方,因为第一个表和第二个表不一样,所以第一个表的列不在第二个表格中,读取到第二个表对应实体类属性就是null,所以在invoke方法里加了条件。个人在工作中遇到一个需求,读取第三方的对账文件,但是对账文件中的日期的单元格格式不是文本,这样读出来就会是一个数字,表示的是1990年1月1日距今的天数。最初朴素的想法是读取出来数字,然后用Date接受,这样就知道需要excel对应的这串数字其实是日期,然后再自定义的listener里边定义converter做日期转换。

2024-11-07 14:40:52 562

原创 git merge没有生成合并提交

这是因为当执行合并操作时,如果目标分支的提交历史是源分支的直接延续(即,目标分支没有新的提交且位于源分支的历史之前),Git 会通过将目标分支的 HEAD 指针直接移动到源分支的最新提交来实现合并。这种情况下,不会生成一个新的合并提交。在这种情况下,如果你从 master 分支执行 git merge feature 命令,Git 会将 master 直接移动到 D,不会生成一个单独的合并提交,这就是快速前进合并。但是可以通过命令强制生成合并提交。

2024-10-23 18:14:21 617

原创 Mockito单元测试的坑

使用的是mockito以及junit4,发现在处理基本类型的时候,处理的不是很好,比如我有个方法的入参是int,以及BigDecimal,所有的基本类型,都要用Mockito 提供的相应的参数匹配器,如 anyInt()、anyLong()、anyBoolean()。但是我在mock的时候用any(),any(),会提示我NPE,但是使用anyInt(),any()去匹配两个入参,就没有问题。

2024-10-19 11:43:15 237

原创 easyExcel写入excel报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializ

这个报错有很多原因,最重要的是要看你的causedBy后边是什么,比如我的这个完整的异常栈信息是:com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:65) ~[easyexcel-3.0.5.jar:?] at com.a

2024-08-27 17:23:01 1250 1

原创 Collections.singletonList()方法的小坑

这个方法进行转换,但是要注意,如果你进行转换的参数是null,最后生成的list不是空list,而是size为1有一个元素是null的list,这个时候加入你进行get或者其他操作是有可能触发NPE的。因为传递的参数要求是list,而我这边需要经常把单元素转为List,所以。

2024-07-03 15:42:31 386

原创 Mysql事务传播机制

事务传播机制的应用

2024-06-18 11:21:28 363

原创 mvn编译所有单元测试报错OOM

怀疑是我的IDEA窗口开了太多,关了其他窗口只留了当前项目,结果就可以了。我在编译的时候运行了所有的单元测试,结果就报了这个错,1.修改IDEA的运行内存,调大到了8192M。修改完重启仍然有这个错误,用了第二种方法。但是单独运行这个单元测试是没问题的。

2024-05-17 18:29:08 619

原创 项目启动报错LoggerFactory is not a Logback LoggerContext but Logback is on the classpath

这种提示就是报的冲突,建议直接用maven依赖视图,搜索报错信息中提示的jar,例如我这个就是log4j-slf4j-impl,去每一个pom中找到引用这个jar的包,然后exclusion这个包,最后只留一个即可。

2024-05-11 17:52:33 1059

原创 mybatis注解方式if标签报错元素内容必须由格式正确的字符数据或标记组成

mybatis注解方式@Select使用if标签报错元素内容必须由格式正确的字符数据或标记组成

2024-03-27 18:29:01 494

原创 java kotlin混合变成java编译提示找不到符号

java编译提示找不到符号

2024-03-08 11:01:50 696

原创 java.lang.IllegalAccessError: class lombok.class lombok.javac.apt.LombokProcessor报错解决

项目lombok版本是其他依赖里边指定的,我没有办法更改(也可以exclude他们的lombok版本我再显示引用高版本的,但是这样一是太麻烦,二是不知道高版本是否向下兼容容易出问题),所以我检查了自己的IDEA中的project Structure,但是我发现配置的都是1.8版本,理论上1.8之上版本才会有这个问题,百思不得其解。后来看到有的博客说,maven编译的时候使用的jdk版本是环境变量中的jdk版本,赶紧去终端中执行命令。解决方法就是在mac的系统变量中手动降级jdk的版本。,结果显示是17.。

2024-03-01 21:32:43 3178

原创 关于优先队列的一点细节

关于优先队列的细节

2023-10-11 11:16:58 368

原创 记第二次线上问题排查过程

线上问题排查

2023-09-15 10:28:38 365

原创 关于java三元组的问题

三元组中的空指针异常

2023-08-24 13:20:28 298

原创 java后端接口实现302跳转

java后端实现302跳转

2023-07-26 18:10:19 2768

原创 记录两次问题排查过程

解决问题的记录

2023-07-12 14:47:04 664

原创 An invalid character [32] was present in the Cookie value

cookie的一些约束和规范

2023-06-21 18:20:03 465

原创 关于原生feign发起请求时,参数注解的相关问题

feign请求时传参需要怎么使用注解

2023-05-26 17:09:28 1276

原创 curl命令显示返回状态码等信息

curl命令

2023-05-11 10:20:28 3182

原创 springBoot项目引入sdk的注意事项

springBoot引入sdk的注意事项

2023-05-06 10:03:30 1025

原创 类型转换后还是同一个对象吗?

json转换和强转之后还是同一个对象吗?

2023-05-05 10:18:16 259

原创 feign配置方式

之前一直是写一个config文件对feign的相关功能进行配置,包括连接时间啊,线程数啊,重试次数,拦截器等。中的name属性后边的值,如果配置的name属性在yaml文件中找不到对应值,则会进入default配置。注解,否则会加载两次,怀疑是yaml配置后就自动生成一个bean了,如果再加注解,就会生成两个?另外,这个地方配置拦截器的话不需要在拦截器的class文件中加上。其中配置中的cnt-plat对应的是。

2023-05-04 10:50:28 490

原创 Linux中一些操作,拷贝文件,编辑文件

linux中保存、修改、拷贝文件命令

2023-04-26 17:37:50 199

原创 服务pod中下载大文件

容器服务中的大文件绕过运维帮助的下载方法

2023-04-14 13:32:16 399

原创 记一次内存泄漏问题的排查

内存泄漏的排查记录

2023-04-13 15:29:59 1116

原创 java项目里配置feign,两种使用方式

java中使用feign

2023-03-31 11:36:30 733

原创 protobuf和pojo bean之间的属性复制

protobuf和bean属性复制的方法

2023-03-07 17:27:19 330

原创 子类继承时的@Data使用

lombok中@Data注解相关问题

2023-02-20 18:33:04 1463

原创 springBoot配置多个线程池

java配置多个线程池

2023-01-16 13:17:20 1640

原创 Druid平行替换为Hikari

hikari替换druid

2022-12-29 14:58:11 2113

原创 Druid关闭监控页面关闭不了

druid关闭监控页面关不掉

2022-12-29 14:47:05 3965

原创 DataGrip中mongodb的操作语句命令

mongodb的语法书写

2022-12-26 11:22:10 1432

原创 Dubbo 2.7.X版本升级后的问题

dubbo升级版本后出现的问题

2022-12-19 15:12:01 1053

原创 GET请求中传参List<String>的一些问题

GET请求传参是List时候的问题

2022-11-04 10:35:23 2257

原创 feign配置hystrix,增加熔断降级,两种情况的不同配置

对于feign的两种调用方式,配置hystrix的方法

2022-09-29 17:51:54 1764

原创 多线程如何使用MDC传递上下文信息

多线程如何实现上下文信息传递

2022-09-01 15:03:07 1264

空空如也

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

TA关注的人

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