自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 收藏
  • 关注

原创 Spring Boot实战:Event事件机制解析与实战

摘要 本文深入解析Spring Boot事件机制及其在电商场景中的应用。通过观察者模式实现核心业务与拓展逻辑的解耦,以用户下单为例展示传统紧耦合写法与事件驱动解耦方案的对比。文章详细介绍了Spring事件三要素(事件、发布者、监听器)及其实现方式,并提供了Spring Boot 2.7.10 + Spring MVC的实战示例,演示如何通过事件机制优雅处理下单后的优惠券发放、短信通知和积分增加等拓展业务。该方案有效解决了传统开发中修改困难、异常阻塞和测试复杂等问题,使系统更易维护和扩展。

2026-04-20 12:45:54 407

原创 Spring Boot实战:InfluxDB 2.x简单教程

本文介绍了Spring Boot整合InfluxDB 2.x的实战教程,主要内容包括:1)InfluxDB 2.x的环境搭建与初始化配置;2)SpringBoot项目中引入2.x专属客户端依赖和配置;3)封装InfluxDB 2.x的配置类,管理写入和查询API。文章提供了完整的代码示例,帮助开发者快速实现时序数据的读写操作,解决版本升级带来的适配问题。通过Docker部署InfluxDB 2.7.1,详细说明了从1.x到2.x的架构变化和核心功能差异。

2026-04-20 12:38:10 525

原创 Netty 4.2 入门指南:从概念到第一个程序

本文介绍了Netty 4.2网络编程框架的核心概念与入门实践。Netty作为高性能异步事件驱动框架,相比原生NIO具有简化开发、高性能、高可靠性等优势。文章详细解析了Netty 4.2的核心组件:Channel、EventLoop、ChannelHandler、ByteBuf等,并重点说明了4.2版本的关键改进。最后通过一个"回声服务"Demo,展示了如何使用Netty 4.2快速构建网络应用,包含服务端和客户端的完整实现代码。该指南适合Java开发者快速上手Netty网络编程。

2026-03-03 20:40:23 469

原创 Spring Boot 实战:RSA+AES 接口全链路加解密(防篡改 / 防重放)

本文介绍了在Spring Boot应用中实现API接口全链路加解密的安全方案。该方案采用RSA+AES-GCM混合加密机制,通过RSA-OAEP加密AES密钥,AES-GCM加密业务数据,同时加入时间戳和Nonce防重放攻击。文章详细阐述了方案背景、设计目标、技术选型及实现细节,包括注解式开发、前后端兼容性等核心特性。项目工程结构清晰,包含密钥管理、加解密工具、异常处理等模块,提供完整的代码实现参考。该方案有效解决了HTTPS无法覆盖的终端安全风险,确保数据传输的机密性和完整性。

2026-02-26 22:49:29 953

原创 Java 网络编程核心:BIO、NIO、AIO IO 模型深度解析与实战

Java网络编程IO模型解析:BIO、NIO与AIO 摘要:本文深入解析Java网络编程中的三种IO模型。BIO(同步阻塞IO)采用一连接一线程模式,编程简单但性能受限;NIO(同步非阻塞IO)通过Selector多路复用器实现单线程处理多连接,大幅提升并发能力;AIO(异步非阻塞IO)采用回调机制实现真正的异步处理。文章从Socket基础入手,详细对比了三者的核心原理、适用场景与性能差异,并提供了可直接运行的代码示例。通过学习,读者可掌握根据业务需求(连接数、实时性等)选择合适IO模型的能力,为构建高性能

2026-02-25 23:21:34 935

原创 AsyncTool + SpringBoot:轻量级异步编排最佳实践

摘要:京东开源的asyncTool是一款轻量级异步任务编排工具,可简化复杂异步任务的依赖管理与异常管控。相比传统方案,它支持并行/串行混合编排,提供异常隔离、超时控制、自动重试等功能,并能无缝整合SpringBoot。适用于接口聚合查询、复杂流程编排等场景,显著提升系统性能与开发效率。文章详细介绍了其核心优势、适用场景及SpringBoot整合步骤,包含线程池配置、任务编排示例等可复用代码。

2026-02-16 14:51:16 973

原创 后端 Mock 实战:Spring Boot 3 实现入站 & 出站接口模拟

本文介绍了一个基于Spring Boot 3的后端Mock系统设计方案。系统采用DDD架构,提供入站和出站接口模拟功能,支持通过数据库动态配置Mock规则。核心功能包括:HTTP请求拦截、智能缓存、全局开关控制等。技术栈包含MyBatis-Plus、Hutool工具库和TestContainers测试框架。文章详细阐述了数据库设计、缓存服务和整体架构实现,为开发测试环境中的接口模拟提供了完整解决方案。

2026-02-09 14:55:18 1126

原创 Python3基础:基础实战巩固,从“会用”到“活用”

本文是Python基础学习的第七阶段「基础实战巩固」教程,旨在帮助学习者将前六阶段的知识点串联应用,实现从"会用"到"活用"的跨越。主要内容包括: 常用内置函数:详细讲解8个高频内置函数(len,range,enumerate,zip,sorted,map,filter,abs)的语法和实战应用场景,并附有避坑指南。 标准库使用:重点介绍math、random、time三个最常用的Python标准库,通过实际案例演示如何进行数学计算、随机数生成和时间处理。 本阶段强调

2026-02-09 12:36:43 723

原创 Python3基础:进阶基础,筑牢编程底层能力

这篇文章摘要(150字): 本文是Python进阶基础学习的第六阶段教程,重点讲解模块与包的使用,帮助实现代码规模化复用。内容涵盖:1)模块的四种导入方式(基础导入、别名导入、按需导入、全量导入);2)自定义模块的创建与跨文件调用技巧;3)包的组织结构及模块分类管理;4)常用内置模块(random、datetime、math等)的实用示例。教程采用"知识点解析+可运行代码"模式,强调通过实际编码掌握模块化编程思维,为后续学习复杂项目和框架打下基础。特别说明了if __name__ ==

2026-02-06 23:14:20 445

原创 Python3基础:函数基础,解锁模块化编程新技能

本文是Python函数基础学习的第五阶段指南,主要讲解函数的定义与调用、参数传递等核心概念。函数作为模块化编程的重要工具,能够实现代码复用和逻辑封装。文章详细介绍了函数的定义语法(def关键字、参数列表、文档字符串等)和调用方法,强调函数必须被调用才会执行。同时重点讲解了位置参数、关键字参数和默认参数的使用场景与注意事项,并提供了常见错误示例和避坑指南。通过多个可直接运行的代码示例,帮助新手逐步掌握函数基础,为后续进阶学习打下坚实基础。

2026-02-06 23:13:27 1032

原创 Java单元测:jqwik框架入门(含完整Demo)

本文介绍了jqwik框架在Java单元测试中的应用。jqwik是基于JUnit5的属性测试框架,能够自动生成海量测试数据验证代码的通用属性,相比传统JUnit测试更高效全面。文章详细讲解了jqwik的核心优势、基础使用步骤和核心注解,并通过一个完整的字符串工具类测试Demo展示了实际应用。Demo包含反转字符串和判空功能的测试,覆盖正常、边界和异常场景,体现了jqwik自动生成测试数据和智能缩小反例的特性。该框架可与现有JUnit测试无缝集成,是提升测试覆盖率和发现隐藏bug的有效工具。

2026-01-30 12:58:43 1111

原创 RocketMQ从实战到源码:SpringBoot整合RocketMQ

本文介绍了SpringBoot与RocketMQ的整合实践,主要内容包括: 环境准备:详细说明了JDK、SpringBoot、RocketMQ及starter的版本兼容性要求,推荐使用稳定版本组合 依赖配置:引入rocketmq-spring-boot-starter依赖,简化整合过程 配置文件:提供了完整的RocketMQ配置示例,包含NameServer地址、生产者/消费者参数等 代码实现: 消息实体类定义 生产者实现三种消息发送方式(同步、异步、单向) 消费者通过注解自动监听消息 测试验证:构建测试类

2026-01-28 22:20:35 541

原创 Python3基础:吃透容器数据类型,高效处理海量数据

本文介绍了Python容器数据类型中的列表(List)操作,重点讲解了列表的创建、访问、增删改查和切片等核心功能。列表作为最灵活的有序数据仓库,具有可变、可存储任意类型数据的特点。文章通过大量代码示例详细展示了列表的多种操作方法,包括append()、insert()、extend()等添加元素方式,remove()、pop()、del等删除元素方法,以及索引访问和切片技巧。特别强调了新手常见误区,如append与extend的区别、索引越界等问题。这些基础操作是高效处理海量数据的关键,为后续更复杂的编程学

2026-01-25 16:47:29 682

原创 Python3基础:精通流程控制,让程序“有逻辑地执行”

本文介绍了Python流程控制的三大核心内容:条件语句、循环语句和循环控制。条件语句通过if/elif/else实现程序逻辑判断;循环语句包括for循环(遍历可迭代对象)和while循环(条件循环);循环控制语句break/continue/pass可灵活控制循环流程。文章包含大量代码示例和常见错误提示,帮助读者掌握Python编程中的逻辑控制结构,实现程序的智能化执行。

2026-01-25 16:43:26 561

原创 Python3基础:吃透核心基础语法,筑牢编程根基

摘要:本文详细介绍了Python3基础语法的核心内容,包括变量与命名规范、基本数据类型(数字、字符串、布尔值)、输入输出函数(print和input)以及常用运算符(算术、比较、逻辑等)。通过丰富的代码示例,帮助初学者掌握Python编程基础,强调遵循PEP8规范的重要性。文章结构清晰,适合新手系统学习Python语言的基础知识。

2026-01-23 13:17:47 652

原创 Python3基础:Python3环境搭建

本文介绍了两种搭建Python3开发环境的方法:1)通过官网下载安装程序直接安装,可选择默认或自定义安装路径;2)使用Anaconda进行版本管理,可从官网或清华镜像站下载。两种方法均可实现Python环境配置,Anaconda支持创建虚拟环境便于版本切换。安装完成后可通过命令行验证版本信息。

2026-01-23 13:16:22 594

原创 RocketMQ从实战到源码:自动启动脚本

本文分享了一个自动启动RocketMQ组件的Shell脚本,解决了手动启动NameServer、Broker和Dashboard的繁琐问题。脚本包含以下功能: 检查必要的目录和Java环境 自动启动NameServer、Broker和Dashboard 显示各组件的运行状态 提供停止所有组件的功能 包含彩色输出和日志记录 使用该脚本可以一键启动RocketMQ所有服务,简化了开发测试环境配置流程。脚本适用于CentOS 7系统,需要预先安装Java环境。

2026-01-22 12:19:12 332

原创 RocketMQ从实战到源码:客户端消息机制(万字篇幅)

本文主要介绍了RocketMQ客户端消息机制的基础使用和确认消息机制。文章首先通过示例代码展示了生产者和消费者的基本编程逻辑,包括创建实例、设置参数、启动服务等固定步骤。随后重点讲解了消息确认机制,从生产者端的三种发送模式(同步、异步、单向)及其确认逻辑进行详细说明,并分析了不同模式适用的业务场景。同时指出Broker端的刷盘/复制策略会影响确认的可靠性。本文为RocketMQ消息机制的学习提供了实践基础,后续将针对每种消息机制进行更深入的分析。

2026-01-20 22:13:01 1296

原创 MySQL8.0定时删除数据:内置调度器vsWindows任务计划程序

本文对比了MySQL8.0定时删除过期数据的两种实现方案。MySQL内置事件调度器通过纯数据库层面实现,配置简单、性能优;Windows任务计划程序通过外部系统调用,灵活性更高。文章详细讲解了两种方案的具体实施步骤,包括权限配置、脚本编写和任务调度设置,并提供了完整的SQL和批处理示例。最后从依赖环境、灵活性、性能等维度进行对比分析,给出选型建议:纯数据库操作优先选内置调度器,需结合外部逻辑则选用任务计划程序。适合需要定期清理业务数据的开发者参考。

2026-01-19 12:12:43 924

原创 RocketMQ从实战到源码:初识RocketMQ

本文介绍了分布式消息中间件RocketMQ的基本概念与核心组件。RocketMQ由阿里巴巴开发并捐赠给Apache,具有高吞吐、低延迟等特点。文章详细解析了其核心架构,包括NameServer注册中心、Broker消息中转角色,以及主题、消息队列等关键概念。同时阐述了消息分类、标签、索引等属性,并说明了生产者、消费者相关机制,如事务检查器、消费者分组等。通过系统化的梳理,帮助读者快速理解RocketMQ的基础架构与核心功能。

2026-01-05 21:37:02 949

原创 软考系统架构设计师考试心得

摘要 本文分享了软考系统架构设计师考试的备考经验。作者建议根据自身情况选择考试科目,如技术爱好者可选系统架构设计师。备考过程中,作者强调避免盲目收集资料,应选择一套完整资料系统学习。学习方法包括:快速浏览课件、重点复习选择题内容、选择性跳过非相关领域(如嵌入式)。作者推荐使用AI辅助学习,并提供详细的学习指令模板。刷题方面建议使用希赛网平台,重点关注近年的真题,遇到问题及时查阅资料但不纠结细节。考试以理解为主,部分内容需要记忆,通过系统学习和针对性练习即可顺利通过考试。

2025-12-29 20:22:12 973

原创 SpringBoot项目中基于RSA加密的授权码技术方案

本方案采用RSA非对称加密技术实现安全授权管理,核心流程包括: SDK生成密钥对并分发加密授权码(含过期时间) 通过Feign客户端对接外部激活系统获取私钥 使用Jasypt加密存储私钥,或缓存至Redis SpringMVC过滤器解密验证授权有效性 分级处理授权过期(提示/重定向) 方案特点: 结合RSA与二次加密保障密钥安全 提供多级过期提醒机制 支持密钥轮换与审计日志 适合企业级应用的授权管理 实现效果:安全可靠的授权验证体系,兼顾灵活性与扩展性。

2025-08-27 10:49:23 778

原创 软考架构师:数据库的范式

本文介绍了数据库的范式(Normalization)概念,包括1NF、2NF、3NF和BCNF,旨在通过规范化表结构减少数据冗余、避免更新异常并保持数据一致性。1NF要求属性为原子值;2NF消除部分依赖;3NF消除传递依赖;BCNF进一步要求决定因素必须是候选键。文章通过表格对比和示例说明各范式的特点,并指出范式化可能影响查询性能,有时需反范式化优化。最后提供10道测试题及答案解析,帮助理解范式应用。

2025-08-11 19:50:20 605

原创 JUC从实战到源码:增强原子类高级应用与源码解析

本章节从增强原子类的基本了解进行入手,包括前置知识,慢慢渗透到源码分析,源码分析通过 LongAdder 的源码来进行讲解。

2025-05-03 11:22:24 1136

原创 言简意赅:MySQL如何实时同步到ES

在使用 MySQL 的时候,由于数据量比较大,会将其存储到 ES 中,那么这里就会涉及到,要如何设计方案,使得 MySQL 能够实时的同步到Elasticsearch。

2025-04-24 23:17:01 1208

原创 实际应用:使用Nginx实现代理与服务治理

通过nginx实现反向代理,在通过请求标记的路径去进行负载均衡到相应的后端服务。

2025-04-06 22:53:26 380

原创 MySQL主从集群同步延迟问题

在使用 MySQL 集群的时候,我们都是采用了主从架构,主用来负责读,从用来负责写,但是这可能会存在从库去主库同步数据的时候会发生延迟问题。

2025-04-04 17:11:57 897

原创 【MySQL性能优化】- MySQL调优与8.0新特性

前面学习了索引、执行计划、MySQL 执行过程、事务与锁、MVCC 以及 bufferpool 机制和日志,接下来就继续学习 MySQL 的调优以及 8.0 的新特性。

2025-03-13 07:12:11 1023

原创 JUC从实战到源码:原子类的基本操作

原子类与 CAS 是相辅相成的,接下来将会对原子类的基础到源码分析进行学习,本章先来了解一下原子类的基本操作。

2025-03-08 17:53:50 978

原创 JUC从实战到源码:CAS原理与机制详解

本文将从 CAS 的基本原理出发,结合 Java 中的原子类,详细探讨其工作原理、优缺点以及相关的应用场景。同时,我们还会通过代码示例和源码分析,帮助读者更好地理解 CAS 在实际开发中的应用。

2025-02-25 08:49:44 969

原创 【MySQL性能优化】- 一文轻松学会BufferPool缓存机制

本文主要介绍了MySQL中InnoDB存储引擎的Buffer Pool缓存机制及其与日志文件的协同工作原理。

2025-02-14 22:46:05 1162

原创 JUC从实战到源码:再识volatile

本章将深入探讨volatile的特性,包括其如何实现内存可见性和禁止指令重排,以及内存屏障在其中的作用。

2024-11-18 21:50:08 1016

原创 JUC从实战到源码:JMM总得认识一下吧

在现代计算机编程中,多线程并发编程是提高程序性能和资源利用率的关键技术之一。Java作为一种广泛使用的编程语言,其内存模型(JMM)对于理解和实现多线程编程至关重要。本文档旨在深入探讨Java内存模型(JMM),包括其定义、重要性、核心特性以及如何通过JMM确保多线程程序的正确性和性能。通过阅读本文,读者将能够理解JMM的工作原理,以及如何在实际开发中应用JMM的原则和机制。

2024-11-12 20:23:20 1022

原创 JUC从实战到源码:LockSupport

在多线程编程中,线程间的协调是一个复杂而又至关重要的话题。Java提供了多种机制来实现线程间的同步和通信,以确保数据的一致性和线程的安全执行。在这些机制中,LockSupport类提供了一种高效且灵活的方式来控制线程的阻塞和唤醒。本文将深入探讨LockSupport类及其与Java中其他线程控制机制的对比,包括传统的wait和notify方法以及基于Condition的await和signal方法。我们将通过代码示例和分析,详细解释这些机制的工作原理和使用场景,以及它们之间的差异和最佳实践。

2024-11-04 21:56:12 1177

原创 JUC从实战到源码:中断机制与API实现

在Java中,线程中断是一种机制,用于通知线程应该停止当前正在执行的任务。中断通常用于协同线程之间的合作,以便让线程在适当的时候终止其工作,尤其是在长时间运行的任务或阻塞操作中。通过学了多线程以及synchronized的相关知识,接下来就到了学习线程中断知识。

2024-09-12 20:06:16 1569 1

原创 【git】subtree 简单教程

本次来介绍一个git命令中很少用过的一个指令,相信70%的开发者都没有接触过这个指令。笔者能学到这个指令还得从领导说起。事情的起因是这样的,领导想要把我们公共通用的代码做个统一管理,方便其他子项目用的时候,只用改一次,其他项目只要拉取就好了。当时领导也是想破头脑,我也做了很多的尝试,都没能很好的做到。于是领导不断的尝试,最终发现了这个指令。所以今天就来简单的学习一下git subtree如何让多个项目同步子项目。

2024-06-06 23:19:06 3373 4

原创 GPT革命:AI如何重塑我们的未来!

近年来,随着人工智能的快速发展,在2022 年 11 月 30 日,OpenAI 宣布正式推出 ChatGPT。随着生成式AI的爆发,这样可所谓的生成式AI的寒武纪大爆发,GPT技术在如今已经逐渐渗透到我们生活的各个领域,正在重新定义我们的生活方式。

2024-06-05 21:50:40 1191

原创 揭秘数字工厂:如何运用AGV、LMS和WMS成为制造业的隐藏神器

数字工厂作为制造业革新的典范,正引领着行业走向智能化、自动化的新纪元。在这一变革中,自动引导车(AGV)、物流管理系统(LMS)和仓库管理系统(WMS)成为了现代制造业的秘密武器。这些先进技术的结合,不仅优化了生产流程,提高了效率,还大大降低了人力成本和出错率,使企业能够在激烈的市场竞争中占据优势。通过精确的数据分析和智能决策,数字工厂正逐步揭开传统制造业的局限性,展现出无限的可能性和广阔的发展前景。

2024-06-05 21:27:25 1451

原创 工业4.0利器:MES系统

MES制造执行系统,简称MES,是连接企业管理层与生产现场的关键纽带。在工业4.0时代背景下,MES的重要性愈发凸显,它通过实时数据的收集、分析和反馈,帮助企业实现生产流程的智能化管理。MES系统不仅提升了生产效率,还确保了生产过程的精准控制和产品质量的持续改进。通过MES,企业能够在激烈的市场竞争中保持领先地位,实现可持续发展。

2024-06-03 21:11:39 1521

原创 JUC从实战到源码:悲观锁和乐观锁真正了解了吗

在Java中,锁是一个非常重要的概念。它为我们提供了一种机制,能够在进行并发编程时解决线程间的同步问题。锁基本上是关于共享资源访问控制的一种机制。当一个线程试图访问共享数据时,它需要先获取到锁,然后才能进行操作。如果锁已经被其他线程持有,那么试图获取锁的线程将被阻塞,直到锁被释放。

2024-06-03 20:47:58 1341 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除