- 博客(242)
- 资源 (92)
- 收藏
- 关注
原创 代码异味(Code Smell)识别与重构指南
异味道出了代码演进过程中的自然产物识别与重构是一种工程素养持续改进才能让系统具备可持续发展能力🧭 代码异味不是要消灭的敌人,而是指引你写出更好代码的导航仪。每一次重构,都是对未来的投资。
2025-05-05 23:57:36
887
原创 API 接口重构_向后兼容的设计技巧
API 本质是服务提供者与消费者之间的数字契约。重构的难点在于:如何在保证现有消费者不受影响(契约稳定)的前提下,实现技术升级和功能扩展(契约演进)。某金融平台将交易流水 ID 从int升级为UUID。
2025-05-05 08:45:54
809
原创 深入理解 HttpExchange_Java 中构建 HTTP 服务的基础组件
随着微服务、工具类应用和嵌入式系统的兴起,开发者对轻量级 HTTP 服务的需求日益增长。相比引入庞大的框架(如 Spring Boot),使用 JDK 原生 API 构建 HTTP 服务成为一种快速、低依赖的替代方案。JDK 提供了 `com.sun.net.httpserver` 包,其中的核心类 `HttpExchange` 允许我们以极低的成本实现 HTTP 请求与响应的交互逻辑。虽然它不如现代 Web 框架强大,但在小型服务、调试工具、本地代理等场景下非常实用。
2025-05-03 10:26:22
860
原创 重构之道:识别并替换不合适使用的箭头函数
JavaScript 自 ES6 引入了箭头函数(Arrow Function)后,因其简洁的语法和对 `this` 的词法绑定机制,迅速成为开发者喜爱的写法之一。然而,**并不是所有场景都适合使用箭头函数**。
2025-05-02 23:06:11
1410
原创 使用 Spring Boot Actuator 实现应用实时监控
Spring Boot Actuator 是 Spring Boot 提供的一组生产级功能模块,用于帮助开发者对 Spring Boot 应用进行监控和管理。它提供了一系列 REST API 端点(Endpoints),可以获取应用程序的运行状态、健康检查、度量指标等信息。这些端点开箱即用,适用于本地开发、测试环境以及生产部署。在微服务架构中,系统复杂度高、服务数量多且分布广泛。为了快速定位问题、优化性能、保障系统稳定性,必须具备完善的监控能力。Spring Boot Actuator 提供了以下关键优势:
2025-05-01 09:06:33
1371
1
原创 解锁 SpringEvent_构建高效事件驱动系统
自定义事件类,继承 ApplicationEventSpringEvent 提供了一种优雅的方式实现事件驱动架构,能够显著提升系统的解耦性和灵活性。通过本文的学习,读者应能熟练掌握 SpringEvent 的基本用法及高级特性,并将其应用于实际项目中。未来,随着微服务架构的普及,事件驱动模型将变得更加重要。SpringEvent 将在分布式系统中扮演更重要的角色,结合消息队列等技术实现跨服务的事件通信。
2025-04-20 09:29:11
913
原创 Spring Boot + Caffeine:打造高性能缓存解决方案
Spring Boot的核心特性:Spring Boot是一个快速开发框架,提供了自动配置、嵌入式服务器和依赖注入等功能,简化了Java应用的开发过程。Caffeine缓存的特点与优势:Caffeine是一款高性能的本地缓存库,支持LRU、TTL等淘汰策略,并具有线程安全性和低延迟特性。高性能:基于Segmented Lock实现线程安全。灵活的淘汰策略:支持LRU(最近最少使用)、LFU(最不常使用)和TTL(过期时间)。易于集成:支持与Spring Cache无缝结合。
2025-04-19 09:46:56
1098
原创 Java性能剖析工具箱
类加载器(ClassLoader):负责加载字节码。运行时数据区:包括堆、栈、方法区等。执行引擎:解释或编译字节码为机器码。JConsole用于监控JVM的内存、线程、类加载等信息。示例:启动JConsolejconsole。
2025-04-17 23:58:07
1018
原创 Spring Boot 中集成 Disruptor_高性能事件处理框架
Disruptor 是一个高性能的事件处理框架,广泛应用于金融交易系统、日志记录、消息队列等领域。它通过无锁机制和环形缓冲区(Ring Buffer)实现高效的事件处理,具有极低的延迟和高吞吐量的特点。
2025-04-11 10:27:34
1160
原创 JGraphT 在 Spring Boot 中的应用实践
JGraphT 是一个用于处理图数据结构和算法的 Java 库,提供了丰富的图类型和算法实现。
2025-04-07 23:09:37
1099
原创 JVM 参数调优指南_优化 Java 应用性能
JVM 参数调优是指通过调整 Java 虚拟机的各种参数,以优化 Java 应用程序的性能和稳定性。
2025-04-06 09:30:03
815
原创 ANTLR 实战_从零开始构建自定义语言解析器
ANTLR(Another Tool for Language Recognition)是一个强大的解析器生成器,用于构建语言解析器、编译器和解释器。
2025-04-05 09:07:08
971
原创 Spring Boot 中利用 Jasypt 实现数据库字段的透明加密解密
Jasypt(Java Simplified Encryption)是一个用于简化 Java 应用程序中加密操作的库。
2025-04-05 08:51:24
998
原创 Web Workers 技术解析与应用
Web Workers 是一种在后台线程中运行 JavaScript 的机制,允许网页在不阻塞用户界面的情况下执行复杂计算或数据处理任务。
2025-04-04 10:18:59
901
1
原创 深入 OpenPDF:高级 PDF 生成与操作技巧
OpenPDF 是一个用于创建和操作 PDF 文档的 Java 库。它支持多种功能,包括文本、图像、表格、图表、分页和安全性设置等。学习了 OpenPDF 的核心特性和高级功能。掌握了如何生成和操作复杂的 PDF 文档。实现了一个功能丰富的 PDF 生成工具。
2025-03-30 10:41:50
969
原创 Vue3 与 Bpmn-js:打造现代化 BPMN 流程设计器
随着业务流程的复杂化,流程设计器成为企业级应用中不可或缺的一部分。BPMN(Business Process Model and Notation)是一种标准的业务流程建模语言,广泛应用于业务流程管理。本文将介绍如何使用 Vue3 和 Bpmn-js 打造一个现代化的 BPMN 流程设计器。
2025-03-28 23:33:10
880
原创 SpringBoot集成Couchbase开发与实践
Couchbase 是一个高性能的 NoSQL 数据库,支持文档存储、内存缓存和分布式计算。它结合了内存数据库的速度和灵活性与传统数据库的持久性和查询能力。
2025-03-23 18:44:11
1086
原创 Deflate和Gzip压缩在HTTP响应中的作用与实现
Deflate是一种无损数据压缩算法,结合了LZ77算法和哈夫曼编码。它通常用于压缩文件和网络传输。Gzip是一种基于Deflate算法的文件压缩格式,由GNU项目开发。它在Deflate的基础上增加了文件头和校验和,提供了更好的文件完整性检查。SpringBoot默认不直接支持Deflate压缩,但可以通过自定义过滤器来实现。创建一个自定义过滤器来处理Deflate压缩。
2025-03-19 21:37:57
779
原创 MySQL 8主从复制配置最佳实践
主从复制是MySQL中用于提高数据冗余性和可用性的技术。通过将主库的数据复制到一个或多个从库,可以在主库故障时快速切换到从库,保证服务的连续性。此外,主从复制还可以用于负载均衡,将读操作分发到从库,减轻主库的压力。
2025-03-18 21:26:01
943
原创 服务器发送事件(Server-Sent Events,SSE)详解
服务器发送事件(SSE)是一种简单且有效的技术,适用于需要从服务器向客户端推送实时更新的场景。通过本文的介绍,读者可以了解 SSE 的工作原理、使用场景、实现方法以及实际应用案例,从而更好地利用 SSE 提升应用的实时性和用户体验。
2025-03-17 07:55:25
1256
原创 使用OpenResty(基于Nginx和Lua)优化Web服务性能
通过 Lua 脚本实现请求过滤和限流。通过本文的介绍,我们了解了如何使用 OpenResty 优化 Web 服务性能。通过合理配置和优化 Lua 脚本,可以显著提高系统的处理能力和响应速度。希望本文能为读者提供有价值的参考和指导。
2025-03-16 16:50:45
1112
原创 使用 Nginx 进行前端灰度发布的策略与实践
灰度发布是一种有效的软件发布策略,可以帮助开发者在降低风险的同时,逐步推出新版本。Nginx 提供了强大的配置功能,使得实现前端灰度发布变得简单而高效。
2025-03-15 21:53:25
889
原创 Spring Boot与Apache Ignite集成:构建高性能分布式缓存和计算平台
Apache Ignite是一个高性能的分布式内存计算平台,支持内存缓存、分布式计算、流处理和机器学习等功能。它提供了低延迟的数据访问和强大的计算能力,适用于需要高性能和可扩展性的应用。将Apache Ignite集成到Spring Boot应用中,可以显著提高应用的性能和可扩展性。Spring Boot的简单配置和Ignite的强大功能相结合,使得开发和部署更加高效。首先,创建一个新的Spring Boot项目。可以通过Spring Initializr(https://start.spring.io/)
2025-03-14 21:59:10
1583
原创 Spring Boot 集成 Lua 脚本:实现高效业务逻辑处理
Lua是一种轻量级、高性能的脚本语言,常用于游戏开发、嵌入式系统、配置文件解析等领域。Lua语法简洁,易于学习和使用,且具有强大的扩展性。
2025-03-13 22:53:33
1186
原创 Spring Boot + MySQL + MyBatis:企业级应用开发实战
在现代企业级应用开发中,面对复杂的业务逻辑、高并发访问以及严格的安全性和性能要求,开发者需要选择合适的技术栈来应对这些挑战。本项目将基于Spring Boot、MySQL和MyBatis技术栈,构建一个高效、稳定的企业级应用。使用Flyway或Liquibase进行数据库版本控制。:提供RESTful API接口。:编写Mapper接口测试用例。接口及对应的XML映射文件。:按用户ID查询订单列表。:插入用户数据到数据库。:插入订单数据到数据库。:验证业务逻辑完整性。:验证用户名和密码。
2025-03-12 23:21:19
1025
原创 在 Spring Boot 中实现基于 TraceId 的日志链路追踪
`TraceId` 是一个唯一的标识符,用于跟踪分布式系统中的请求。每个请求从客户端发起到服务端处理,再到可能的多个微服务调用,都会携带这个 `TraceId`,以便在整个请求链路中进行追踪和调试。
2025-03-11 23:09:07
1107
原创 MyBatis Plus 在 Java 项目中的高效使用
MyBatis Plus 是一个 MyBatis 的增强工具,旨在简化开发人员在数据库操作上的工作量。它提供了丰富的功能,如自动化的 CRUD 操作、条件构造器、分页查询等,极大地提高了开发效率。
2025-03-10 23:11:11
987
原创 使用 Vue 3 + TypeScript + Vant 4 构建现代移动端应用
随着移动互联网的发展,移动端应用的需求日益增长。Vue 3 提供了强大的响应式数据绑定和组件化开发能力,TypeScript 提供了类型安全,而 Vant 4 是一个轻量级、可靠的移动端 UI 库。本文将详细介绍如何使用 Vue 3 + TypeScript + Vant 4 构建现代移动端应用。
2025-03-09 10:22:37
1009
原创 使用 ResponseBodyEmitter 实现异步响应式数据流处理
SSE 是一种基于 HTTP 的协议,允许服务器向客户端推送实时更新的数据。是实现异步数据流的强大工具。可用于实时数据推送和 SSE 实现。需要注意资源管理和性能优化。
2025-03-08 20:47:09
1157
原创 Spring Boot + MyBatis + MySQL:快速搭建CRUD应用
在现代Web开发中,CRUD(创建、读取、更新、删除)操作是几乎所有应用程序的核心功能。本项目旨在通过Spring Boot、MyBatis和MySQL技术栈,快速搭建一个高效、简洁的CRUD应用。我们将从零开始,逐步实现一个用户管理系统的增删改查功能。:提供RESTful API接口。:提供新增用户的API接口。:提供更新用户的API接口。:直接从数据库中删除记录。:验证CRUD功能完整性。:根据请求参数进行排序。:添加插入数据的方法。:添加更新数据的方法。:实现新增用户逻辑。:实现更新用户逻辑。
2025-03-07 22:08:11
1779
原创 Spring Boot定时任务详解与实践
Spring Boot 提供了简单而强大的定时任务支持,通过和@Scheduled注解,可以轻松地在应用程序中实现定时任务。Spring Boot 的定时任务机制基于 Java 的,支持多种调度方式,如固定延迟、固定速率和自定义 cron 表达式。定时任务是指在特定的时间点或周期性地执行的任务。固定延迟:任务在上一次执行完成后,等待固定时间再执行下一次。固定速率:任务按照固定的时间间隔执行,不考虑上一次任务的执行时间。Cron 表达式:使用 cron 表达式定义复杂的定时任务调度规则。简单易用:通过。
2025-03-06 06:30:00
867
原创 Spring Boot与Logback整合详解
Logback是SLF4J的一个实现,由Ceki Gülcü创建。性能高:Logback比Log4j更快。配置灵活:支持多种配置方式,如XML、Groovy等。模块化:Logback分为三个模块:logback-core、logback-classic和logback-access。性能高:Logback比Log4j更快。配置灵活:支持多种配置方式,如XML、Groovy等。模块化:Logback分为三个模块:logback-core、logback-classic和logback-access。
2025-03-05 06:30:00
710
原创 Java泛型高级技巧与最佳实践
泛型允许在定义类、接口和方法时使用类型参数,从而在实例化时指定具体的类型。优势类型安全:编译时进行类型检查,减少运行时类型转换错误。代码重用:通过泛型可以编写通用的代码,适用于多种类型。可读性和可维护性:泛型使代码更清晰,易于理解和维护。局限类型擦除:在运行时无法获取泛型类型参数的具体类型。复杂性:复杂的边界类型和通配符可能导致代码难以理解。
2025-03-04 06:30:00
592
原创 动态注册Spring Bean和Controller的高级技巧
在现代软件开发中,动态注册Bean和Controller可以提高系统的灵活性和可扩展性。通过动态注册,可以在运行时根据需要添加或移除Bean和Controller,而无需重启应用程序。这在插件化系统、微服务架构和动态配置场景中尤为重要。
2025-03-03 06:30:00
906
原创 Flink实时流处理入门与实践
在当今数据驱动的时代,实时数据处理变得越来越重要。企业需要从不断产生的大量数据中快速提取有价值的信息,以支持决策制定和业务优化。实时流处理技术能够实时处理数据流,提供即时的洞察和响应,从而提高业务效率和竞争力。Apache Flink 是一个开源的分布式流处理框架,支持批处理和流处理。Flink 提供了高吞吐量、低延迟和精确一次(exactly-once)的语义,适用于各种实时数据处理场景,如实时数据分析、实时监控、实时推荐系统等。流处理模型将数据视为连续的、无界的流。Flink 支持事件时间、处理时间和摄
2025-03-02 06:30:00
1356
原创 Spring应用中实现多数据源动态切换
动态切换的核心思想是在运行时根据业务逻辑选择合适的数据源。这通常通过拦截SQL执行前的上下文信息,如方法调用、注解等,来决定使用哪个数据源。创建一个名为@Aspect@Component= null) {try {同时,创建一个自定义注解。
2025-03-01 07:00:00
568
原创 深入解析Java运行时编译与类加载机制
运行时编译是指在程序运行期间对字节码进行即时编译,将其转换为本地机器码以提高执行效率。与静态编译不同,运行时编译可以根据具体运行环境进行优化。= -1) {
2025-02-28 06:00:00
577
原创 MySQL中的DATETIME与TIMESTAMP选择指南
在MySQL中,选择合适的日期时间类型对于确保数据的准确性和性能至关重要。DATETIME和TIMESTAMP是两种常用的日期时间类型,它们在存储范围、时区处理和性能等方面存在差异。了解这些差异有助于选择最适合的应用场景。
2025-02-27 22:12:03
954
原创 掌握 TypeScript 类型_从基础到高级
TypeScript 是一种静态类型的编程语言,它是 JavaScript 的超集。它在编译时进行类型检查,帮助开发者减少错误并提高代码的可维护性。TypeScript 最终会被编译成纯 JavaScript 代码,可以在任何支持 JavaScript 的环境中运行。
2025-02-27 06:45:00
929
原创 Apache Kvrocks_高性能键值存储系统的深度解析
Apache Kvrocks 是一个高性能的键值存储系统,基于 RocksDB 构建。它旨在提供类似 Redis 的功能和性能,同时结合了 RocksDB 的持久化能力和高效磁盘存储机制。Kvrocks 支持多种数据结构(如字符串、哈希表、列表等),并提供了丰富的命令集来操作这些数据结构。
2025-02-26 06:45:00
1035
异质多数据源开发手册
2018-05-02
测试驱动开发
2017-09-03
实现领域驱动设计
2017-08-11
Swing Hacks
2013-08-21
Apress.Practical.API.Design
2013-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人