踩坑
文章平均质量分 66
爱叨叨的程序狗
码农,不只Coding.
展开
-
轻松设置:服务器域名配置全攻略
SSL证书分为两种:正式证书和个人测试证书,正式证书需要购买,个人测试证书免费,有效期三个月,阿里云每年单个域名可以签发20个免费证书,到有效期后再次下载新的免费证书替换即可,20个免费证书足够一年的使用量。完成后状态是绿色的正常,我是由于备案所以设为了暂停状态。解压后是一个.pem文件和一个.key文件,为了后续配置方便,我将文件名称分别改为:server.pem、server.key。的维护者,一个跨专业自学Java,对技术保持热爱的bug猿,同样也是在某二线城市打拼四年余的Java Coder。原创 2024-07-06 15:29:00 · 996 阅读 · 0 评论 -
MapStruct @Mapping注解:优雅处理映射中的Null值
Mapping注解是MapStruct中用于定制字段映射关系的重要工具。通过@Mapping注解,我们可以指定源对象和目标对象之间的字段映射关系,包括字段名、转换方法等信息。在处理Null值时,@Mapping注解提供了一些强大的选项,使得映射过程更加灵活和可控。除了使用默认值和设置目标对象字段为默认值之外,MapStruct还支持自定义Null值处理策略。通过在@Mapper注解中配置nullValueCheckStrategy属性,我们可以指定一个自定义的策略类,来决定在映射过程中如何处理Null值。原创 2023-12-27 21:19:06 · 2046 阅读 · 0 评论 -
IntelliJ IDEA失焦自动重启服务的解决方法
当我们勾选Update classes and resources,当IDEA失焦时,IDEA便会自动更新classes and resources文件,重新编译Spring Boot工程重启服务,因此,如果你不想使用IDEA默认的方案,修改IDEA失焦后的动作为Do nothing或Update resources,修改完成后,点击Apply或OK即可。尽管这并不一定妨碍你的项目运行,但是它无疑会打断你的开发流程,特别是当你在进行长时间的任务时。打开IDEA的Configuration。原创 2023-10-07 13:55:18 · 1509 阅读 · 0 评论 -
服务器CPU飚高排查
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。线程等待:jstack 可以显示线程的等待状态,帮助您确定是否存在线程等待某个资源的情况。线程状态监控:jstack 提供了对线程状态的监控,您可以了解线程的状态,如运行、阻塞、等待等,以便更好地理解应用程序的运行情况。使用arthas可以更快定位问题代码行。原创 2023-08-20 21:47:25 · 1127 阅读 · 1 评论 -
MySQL不走索引的情况分析
innodb表的统计信息并不是实时统计更新,如果统计信息和实际的索引信息差异很大,就会导致优化器计算各个索引成本后,做出非预期的选择。出现这种现象的场景是:当有大量数据在短时间内落库时,Innodb还没更新统计相关信息,此时来了一个查询,MySQL会基于历史数据做出错误的判断:当前表数据量少,不走索引更高效。回表操作可能会增加额外的磁盘访问和数据检索的开销,因此,在某些情况下,当MySQL判断回表所需的资源大于直接扫描全表时,它可能选择不走索引,而是执行全表扫描。查询频繁是数据表字段增加合适的索引。原创 2023-08-11 22:42:22 · 1264 阅读 · 0 评论 -
空字符串使用Equals方法导致NullPointException
今天在处理线上问题时发现一个空指针问题:从数据库查询出一个实体对象Model,获取该对象的某个String类型的字段去和某值使用String的equals方法对比,根据异常提示代码行号,下意识断定是由于原作者从数据库查询时未做Model判空校验且后续代码中使用该Model的Getter()导致的,经过排查SQL日志发现该Model并不为空,为空的是该Model的其中一个属性,该属性在后续代码中使用了equals()方法导致。原创 2022-10-31 21:07:48 · 873 阅读 · 0 评论 -
MySQL关联查询 COUNT数据不准确
函数做统计的需求,同样在使用该函数时如果处理不当会导致统计出的数据是真实数据N倍的问题,出现重复问题导致统计不准确。出现该问题的原因是关联查询的主表与关联表关联关系不是。张三有三辆车,李四两辆,王五无车,可见统计方法出现了重复统计。MySQL在进行关联查询时,首先扫描主表,以主表为基础数据通过。车主和车辆的关系为1:N,两表通过own_id关联。条件会匹配到张三的车辆表3条数据。在业务开发中常遇到关联查询使用。查询车主的姓名和统计功能。原创 2022-10-10 22:22:58 · 1776 阅读 · 0 评论 -
Spring常用事务传播特性
Spring查询当前是否存在事务,如果已存在事务,创建一个保存点,即若代码逻辑抛出异常,代码回滚到保存点,如果没有活跃的事务,则作用和默认。而不依赖于外部事务,它拥有自己的隔离范围,自己的锁,当内部事务开始执行时,外部事务将被挂起,内部事务结束时,外部事务将继续执行。内部事务异常,外部事务未捕获Service异常时,内部Service异常时,不影响外部事务,仅回滚内部事务。默认事务,如果不存在事务,创建一个事务,然后执行事务操作,最常见的选择。新建事务,不依赖于环境的”内部“事务,这个事务将被完全。原创 2022-10-08 21:51:24 · 625 阅读 · 0 评论 -
IDEA-类存在编译时提示Java找不到符号解决方法
如果类正常导入但是报错XXX类找不到:1.清理IDEA缓存并重启2.清理缓存3.在项目的命令行中执行原创 2022-07-05 22:13:18 · 865 阅读 · 0 评论 -
踩坑:HashMap与String字符串互转的问题
背景:当我们有需求将HashMap转为Json格式的String时,切记不要使用HashMap的toString()方法,需要使用FastJson/Gson将HashMap转为String。如果使用toString()方法进行转换时,是无法将字符串再转为HashMap的。它只会出现序列化报错:demo代码: HashMap<String, String> dataMap = new HashMap<>(4); dataMap.put("key1"原创 2022-03-19 01:26:32 · 7080 阅读 · 0 评论 -
踩坑-编译错误:FastJson与lombok导致找不到符号:方法getId()
编译错误:FastJson与lombok导致找不到符号:方法getId()在启动项目或编译项目时,假如遇到java 找不到符号 符号: 方法getId()位置:类型为javaxxxx的问题时,通常是由于lombok的问题导致的,一般解决思路为:查看IDEA是否安装lombok插件,如果未安装则去IDEAsettings -> plugin安装即可。若安装lombok插件后仍出现该问题,则需要检查编译失败的类中是否出现了冲突的lombok注解,如:@Data、@Builder等,可暂时将注解完成原创 2022-03-10 22:07:39 · 1519 阅读 · 0 评论