聊一聊Spring Bean 的生命周期
讲一讲 Spring Bean 的生命周期算是面试时候一道非常经典的问题了! 如果没有研究过 Spring 源码,单纯去背面试题,这个问题也是可以回答出来的,但是单纯的背缺乏理解,而且面试一紧张,就容易背岔了。但是如果你从头到尾看了松哥的 Spring 源码分析,那么这个问题就不需要背了,就根据自己对 Spring 源码的理解讲出来就行了。
Java 21 神仙特性:虚拟线程使用指南(一)
虚拟线程是由 Java 21 版本中实现的一种轻量级线程。它由 JVM 进行创建以及管理。虚拟线程和传统线程(我们称之为平台线程)之间的主要区别在于,我们可以轻松地在一个 Java 程序中运行大量、甚至数百万个虚拟线程。 由于虚拟线程的数量众多,也就赋予了 Java 程序强大的力量。虚拟线程适合用来处理大量请求,它们可以更有效地运行 “一个请求一个线程” 模型编写的 web 应用程序,可以提高吞吐量以及减少硬件浪费。
如何构建更好的复杂系统?容器、微服务和持续交付
在当今软件开发的多变环境中,构建既高效又易于管理的复杂系统显得尤为重要。玛丽·波本迪克(Mary Poppendieck)在Craft Conference上的演讲深入探讨了这一挑战,特别强调了容器、微服务和持续交付在构建复杂软件系统中的关键作用。本文将对她的见解进行深入解析,为开发者提供构建强大软件系统的详细指南。
3 分钟理解 Java 虚拟线程
虚拟线程是 Java 语言中实现的一种轻量级线程,在 Java 项目中可以减少编写、维护和调试高吞吐量并发应用程序的工作量。 有关虚拟线程的背景介绍,大家可以参阅 JEP 444。
一文了解CDN(内容分发网络)
在快速发展的数字时代,内容分发网络(CDN)已成为优化网站性能、提升用户体验的关键技术。本文将深入探讨CDN的工作原理,以及它是如何改善数据传输和网络安全性的。
Spring事务长了个腿?轻松掌握技巧告别长事务烦恼!
本文讨论了长事务的危害及解决方案。首先,我们探讨了长事务导致的问题,包括数据库连接池耗尽、死锁等。其次,介绍了两种解决策略:采用编程式事务和对方法进行拆分。编程式事务提供了手动控制事务范围的方式,但需要注意搭配EventPublisher可能导致监听者事务无法控制的问题。对方法进行拆分是一种更通用的方法,能够减小事务范围,提高执行效率。最后,通过实际的DDD分层架构示例,展示了在应用服务层和领域服务层中如何组织业务逻辑,确保事务正确性和性能。
一文了解DNS(域名系统)
域名系统(DNS)是互联网的基础技术之一,其功能类似于网络电话簿。它将人类可读的域名(如 www.example.com)转换为计算机用来通信的数字 IP 地址。以下是对 DNS 的简要介绍:
一文搞懂 Java8 reduce操作
Java8 中有两大最为重要的改变,其一是 Lambda 表达式,另一个就是 Stream API 了。 Stream 是 Java8 中处理集合的关键抽象概念,它将数据源流化后,可以执行非常复杂的查找、过滤和映射数据、排序、切片、聚合统计等操作。操作之后会产生一个新的流,而数据源则不会发生改变。
一文搞懂 Java8 reduce操作
本文介绍了 Java8 Stream 流中,reduce 操作的相关概念和接收参数,包含初始值,累加器和组合器,最后介绍了 reduce 操作如何使用,希望大家喜欢。
算法工程师如何拿结果:走过低谷,先立信念
作者结合自己在推荐算法领域的工作经验讨论“如何拿结果”这个问题。
Taro | 高性能小程序的最佳实践
Taro作为开放式跨端跨框架解决方案,在大量小程序和H5应用中得到广泛实践,本文将为读者提供最佳实践示例,以帮助最大程度地提升小程序应用的性能表现。
性能加速包:SpringBoot 2.7&JDK 17,你敢尝一尝吗
众所周知,SpringBoot3.0迎来了全面支持JDK17的局面,且最低支持版本就是JDK17,这就意味着,Spring社区将完全抛弃JDK8,全面转战JDK17。作为JAVA开源生态里的扛把子,Spring可以说是整个JAVA生态的风向标,可以说,当Spring转战JDK17,会很快带领JAVA生态全面地跟进JDK17。而我本篇文章重点讲述Spring版本和JDK17升级中的实践整理。
当你在浏览器中输入URL回车后会发生什么?
在日常使用互联网时,我们经常在浏览器中输入网址(URL),但背后隐藏的是一个复杂的网络通信过程。本文旨在详细解释当您在浏览器中输入URL并按下回车键时,从请求的发起到最终网页的加载,整个过程中发生的各个步骤。
模块化单体应用的数据隔离
今天,我将向你展示模块化单体的四种数据隔离方法: •分离表 •分离模式 •分离数据库 •不同持久化
消息通知(Notification)/用户触达系统设计
近年来,通知功能已经成为许多应用程序中突出的特性。构建一个能每天发送数百万通知的可扩展系统绝非易事。这正是为什么我觉得有必要记录我在这方面踩坑之路。也叫用户触达系统。 完成这项任务要求对通知生态系统有深刻的理解,否则需求很容易变得模糊和不明确。
关于响应式布局,你需要了解的知识点
相信大家都知道我最近在学习前端知识,最近学到了响应式这块的内容。既然学到这块内容,那我必然会遵循「理论 - 实践 - 总结」的学习方法,这篇文章就是我对响应式知识的简单总结。
六边形架构:管理复杂性的解决方案
六边形架构是一种将外部系统与核心应用程序分离的架构模式。
深入浅出VACUUM内核原理(下)
今天与各位再次聊聊 vacuum 其他鲜为人知的特性和有趣的特性——碎片整理。
现代软件架构:事件驱动设计遇上事件溯源
在当今的软件领域中,做出正确的架构决策对于确保性能、可扩展性、可维护性和整体成功至关重要。在众多模式中,事件驱动架构(EDA)和事件溯源(ES)作为复杂软件系统最受欢迎的两种选择之一。虽然可以单独使用EDA或ES,但它们的结合可能效果惊人。
淘宝买菜累计下单玩法的前世今生与技术思考
累计下单玩法,是淘宝买菜次日自提服务中的一种老客复购提频互动精准营销方案。本文从项目背景、业务流程、技术思考与实现等方面详细介绍了其实现过程。