-
还在用又臭又长的多层 if 判断空值?那我推荐你使用 Optional
版本JDK 8前言Optional 是 Java 8 中引入的一个有趣类,用于表示一个值存在或不存在。它的设计目的是解决空指针异常(NullPointerException)问题,使得程序更加健壮、简洁。先看一个小案例大家看一下下面的代码是否存在问题?聪明的小伙伴也许都看出来了,代码没有进行判空检验,异常的场景会抛出 NullPointerExce...9个月前 阅读355
-
技术总监写的十个方法,让我精通了lambda表达式
前公司的技术总监写了工具类,对Java Stream 进行二次封装,使用起来非常爽,全公司都在用。我自己照着写了一遍,改了名字,分享给大家。一共整理了10个工具方法,可以满足 Collection、List、Set、Map 之间各种类型转化。例如将 Collection<OrderItem> 转化为 List<OrderItem>将 Collection...9个月前 阅读342
-
这样处理 SpringBoot 日志,太优雅了!
在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。ELK 简介ELK 是...9个月前 阅读355
-
SpringBoot 中实现订单30分钟自动取消
在涉及到支付的业务时,通常需要实现一个功能:如果用户在生成订单的一定时间内未完成支付,系统将自动取消订单。本文将基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例代码。方案一:定时任务利用@Scheduled注解,我们可以轻松实现定时任务,周期性扫描订单记录,检查未支付的订单,如果有满...9个月前 阅读367
-
公司技术栈用到了RocketMQ,我对此块知识作了回顾
了解到我司使用到的技术栈,在空闲时间正好对RocketMQ这块技术做个回顾,希望能回想起那死去的记忆,同时希望能够帮助到正在学习这块知识的小伙伴儿们!以下正文开始。RocketMQ简介和RabbitMQ不一样,RocketMQ是一款由阿里巴巴开发并开源的分布式消息中间件,它是基于纯Java实现的。RocketMQ的前身是MetaQ,后面成为Apache的...9个月前 阅读380
-
一口气说出Redis实现5种限流算法,面试稳了
使用Redis实现限流是一种常见的做法,尤其是在分布式系统中。Redis的高性能和丰富的命令集使其非常适合于实现各种限流算法。下面介绍几种常见的限流算法及其在Redis中的实现:1. 固定窗口限流原理:将时间分成固定长度的窗口,并在每个窗口内统计请求次数。如果请求次数超过限制,则进行限流。实现:假设我们限制每分钟最...9个月前 阅读382
-
SpringBoot+Spring WebFlux响应式开发,实现打字效果
Hi,大家好,我是抢老婆酸奶的小肥仔。日常逛网站时,我们有时候会用到在线客服,这种功能大部分都是采用机器人来进行实现,也会出现打字效果。因此,我们仿照实现这样的效果。先看效果图:至于咨询那部分实现,我们就不在此篇文章中实现了。大家可以接入ChatGPT或通义千问来实现。1、Spring WebFlux简介Spring WebFlux是...9个月前 阅读343
-
项目中引入了Netty,让设备动起来了!
起缘忘了具体是哪一天,只记得是一天的下午,刚小眯了一会,老大过来找到我说:“ 来活了 ”,我说:“ 那不挺好的吗? ”。让人闲下来的心可以变得忙一点起来,感觉还不错的样子。就这样,探讨了一番新的需求。由于我们是做物联网方面的,核心就是接受设备上报过来的数据,服务端进行保存,实现数据展示,可以控制设备...9个月前 阅读342
-
我有点想用JDK17了
大家好呀,我是summo,JDK版本升级的非常快,现在已经到JDK20了。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。其实我也不太想升级JDK版本,感觉投入高,收益小,不过有一次我看到了一些使用JDK17新语法写的代码,让我改变了对升级JDK的看法,因为这些新语法我确实想用!废话不多说,上...9个月前 阅读262
-
只需要一张sql表,生成controller、service、dao、entity---自动生成代码插件
快速开始一个业务的开发,是每一个程序员必备的技能。如何进行快速的开发,市面上有着很多插件,良莠不齐,今天我来介绍一个自己一直在用的一个插件。easy code,如果你的项目只有crud的话,这个插件可以说是一个非常好用的存在easy codeEasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义...9个月前 阅读283