Spring Reactive(响应式编程)


大人,时代又变了!传统的阻塞式 Web 编程面临着史上最大的挑战,响应式编程或将成为下一代 Web 开发的核心趋势。在这篇文章中,我们将探讨 Spring Reactive 的概念及其应用,揭示响应式编程如何在性能和可扩展性上超越传统 Web 开发。 我们将从基本概念入手,带你理解 Reactive Streams API 和那种灵活的发布-订阅模型,如何让数据流的处理变得更高效。接下来,我们会深入到 Reactor API 的世界,看看 Flux 和 Mono 的基本使用,以及如何利用事件感知 API 和流订阅来应对复杂的数据流处理。 当然,WebFlux 的引入和使用也是我们的重点。通过分析 DispatcherHandler 和全局异常处理,我们将展示如何构建更具响应性的 Web 应用。此外,R2DBC 的基本使用和在 Spring Boot 中的实现,也会为你提供强大的数据访问能力。 总之,本文将帮助你了解响应式编程的真正魅力:降低延迟、提升资源利用率,并在实际开发中灵活应用这些技术。不论是应对高并发请求,还是处理实时数据流,响应式编程都将成为你的得力助手,引领你迈向 Web 开发的新纪元!

单测在 Java 项目中使用有何奇效


单元测试让代码可拓展、可维护、可复用。本文通过对几段代码的实际修改、优化、添加单测的过程,讲解单测的基本使用以及 Mock 测试步骤。

Spring AOP 注解失效原因分析


需求线上验收环节,发现数据写库失败。分析问题为注解失效导致。本文分析 SpringAOP 机制下,注解会失效的原因与避免、解决办法。

Caffeine 高性能原理探索


Guava 与 Caffeine 对比;Caffeine 原理源码解读;Guava 原理源码解读;W-TinyLFU 原理;LRU、LFU;

沙沙分不清,缓存中间件如何选择?如何优雅地设计多级缓存?


缓存的比较 本地缓存 分布式缓存 缓存中间件选型 redis levelDB Guava Caffeine Ehcache memcached 多级缓存设计 二级缓存实现 Spring 自动配置方式

盘点 MySQL InnoDB 索引原理


背景前阶段学习、面试中,反复遇到 MySQL InnoDB 存储引擎索引部分的内容。据说只有给别人讲懂才是真的懂,这里本文将学习所得总结分享如下。本文以讲解原理为主,以讲解索引部分为主。前序知识本文面向读者不是零基础,需要读者至少有以下知识基础:基本的数据结构基础:掌握链表、二分法、B+ 树等数据库

如何在 Springboot 中处理 Emoji


本文介绍在 Springboot 中解决 Emoji 存储的几个办法。修改数据库字符集、在过滤器上进行控制、自定义字符串包装类并编写转换方法(含代码)、自定义 ObjectMapper 针对 JSON 的转化(含代码)。

设计一个简单的消息分发中心(消息队列) - javascript 实现


javascript 实现简易的消息分发中心,支持优先级、topic、异步处理、中断等待、动态订阅、取消订阅、自动控制等功能

使用 JavaScript 进行 Canvas 绘图时的几个注意点


使用 JS Canvas 绘制时四个问题的解决办法: drawImage 无效果、图像被拉伸、绘制出的地图中有较细的缝隙、图像变色缩放后绘制出现失真