随笔分类 - 踩坑备忘
摘要:问题 今天启动业余学习项目里的某服务A发现启动失败,报错信息如下: [ ERROR] [2025-01-05 15:41:26,083] [main] com.cdfive.springboot.startup.ApplicationStartupExceptionReporter [30] - e
阅读全文
摘要:String str = "abc"; 需求是String转换为List<Character>或List<String>。 第一眼想到是通过String#toCharArray()转换为char[],然后再转换为List,尝试用Arrays.asList(T... a): char[] chars
阅读全文
摘要:去年写过一篇博客记录了日常项目开发中使用BigDecimal遇到的问题和注意事项: Java项目日常开发中使用BigDecimal常见问题总结 今年在项目开发中又遇到了几个实例,这里补充记录下。 BigDecimal初始化时入参使用String类型,如果不是数字会抛异常NumberFormatExc
阅读全文
摘要:知识点 Spring提供了@Value注解,可用于将配置文件或注册中心的属性值动态注入到Bean中。 注:@Value注解在spring-beans包里。 @Value("${...}"):注入获取对应属性文件中定义的属性值; @Value("#{...}"):表示SpEl表达式通常用来获取Bean
阅读全文
摘要:问题 项目里使用xxl-job定时任务框架,某个任务定义如下: @Slf4j @RefreshScope @Component @JobHandler("xxxTask") public class XxxTask extends IJobHandler { @Value("${xxx.enable
阅读全文
摘要:场景 某天在钉钉阿里云运维群收到提示,部分节点阿里云网络异常告警。 检查组内项目微服务发现有1个节点出现了假死现象,进程运行服务没有挂,CPU、内存等资源正常, 但访问服务提供的RESTAPI接口均无法响应,通过网关调用接口一直等待直到超时。 分析 通过jstack导出线程堆栈信息到文件: jps
阅读全文
摘要:Java项目中有计算精度要求高的场景(如金额计算)会使用`BigDecimal`类型来代替`Double`、`Float`。 本文整理了一些日常开发中使用`BigDecimal`值得注意的问题和代码实例。 1. `BigDecimal`初始化时入参应使用`String`类型 例1: ```java
阅读全文
摘要:## 问题 最近协助渠道组开发新需求,封装实现了一个公共模块供不同渠道项目使用。 以前各个渠道项目有很多相似的菜单和功能,各自项目里自己的代码实现,表设计和代码风格迥异。 本公共模块对新需求的功能点进行抽象,通过设计回调接口来实现差异性,减少重复代码,提高模块复用性和可维护性。 目前有2个渠道项目接
阅读全文
摘要:问题 java8提供了Stream API,配合Lambda表达式,让开发者能对集合对象进行便利、高效的操作。 在日常业务开发中,有个经常用到的场景是将List类型对象转换为Map类型对象,进行后续处理。 在java8之前,这种转换需要先new一个Map对象,遍历list然后通过Map#put来初始
阅读全文
摘要:## 背景 项目中某配置类`XxxConfig`定义了很多配置参数,通过Spring的`@Value`注解与配置中心的项目yml里的配置项关联。 ``` @Slf4j @Getter @Setter @RefreshScope @Configuration public class XxxConfi
阅读全文
摘要:问题 早上巡检某项目日志,筛选发现几条报错信息,如下: org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: Incorrect s
阅读全文
摘要:背景 项目中很多地方使用了Guava Cache,用于加速读取频繁访问的热点数据。 最近项目组中遇到一个"诡异"的问题,多次获取Cache中相同key的数据,返回值不同。 分析 通过查看日志和排查代码,发现有多个地方获取缓存,有的地方获取缓存数据还进行了过滤处理, 正是这些处理改变缓存值,导致其它地
阅读全文
摘要:背景 所在是ToC部门,面向C端用户,商品库存数据跟中台库存服务进行了对接,通过MQ消息、OSS文件对接增量库存变动以及全量库存。 某日收到业务反馈线上有个门店商品的库存数据没对,跟中台不一致。 问题排查 检查这边的库存服务、消息队列都没有异常。 搜索日志找到库存全量文件位置,找到商品库存当天凌晨值
阅读全文
摘要:问题 今天打开个人主页http://cdfive.com时发现页面是空白,F5刷新几次后能显示。 在chrome里Ctrl+Shift+N打开新窗口再次访问,页面显示空白,多次F5刷新后仍然空白。 F12打开控制台,在Network里看到里面获取主页的jquery.js报错,status是faile
阅读全文
摘要:问题 今天在测试环境的运营后台查询商品库存时发现后端接口报错,返回code为904,该错误码表示内部错误。于是在微服务日志里查看,发现某方法报了NPE(java.lang.NullPointer)。 方法里关键的报错代码如下: public Integer queryXxx(String xx, S
阅读全文
摘要:最近某天打开业余开发的小程序,发现访问不了js报错,ssh登录服务器,发现上面各微服务正常,MQ、ES也正常,在某服务日志里看到了MySQL数据库连接 报错。服务器用的阿里云ECS,CPU2核、内存8G,在上面安装了MySQL,通过IDEA里连接时提示[28000][1045] Access den
阅读全文
摘要:某天在项目开发ing,几次提交和切分支后,突然发现某个类IDEA提示各种红线,看提示是类找不到,而这个类去年就添加了,项目里是有的。而更奇怪的是,本地编译构建启动项目都没问题。 尝试如下操作: 刷新maven依赖,然后maven clean并且重新install,整个项目和下面子项目编译打包都没问题
阅读全文
摘要:IDEA升级到2020.2后,打开某项目import maven依赖时提示:Cannot resolve org.openjfx:javafx.base:11.0.0-SNAPSHOT。 通过maven helper插件查看是某模块依赖了hibernate-validator-6.0.11.Fina
阅读全文
摘要:最近在测试环境遇到一次jdbc连接池占满的问题。背景如下: 有一个批量操作,分页去查表数据然后进行后续处理,该查询跨表并且需要返回自定义的字段。 spring-data-jpa提供了方便使用的JpaRepository接口,依次继承PagingAndSortingRepository、CrudRep
阅读全文
摘要:场景: 最近业余在学习dubbo的最新版本,下载官方的samples项目(https://github.com/apache/dubbo-samples) 打开时遇到一个问题,IDEA打开项目一直卡在reading maven projects,等了15分钟还是卡在那里。 IDEA版本:2020.2
阅读全文