自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【源码解析】SpringBoot源码解析之模板方法postProcessBeanFactory(beanFactory)的使用

BeanFactory 初始化完成后、Bean 定义加载前,允许开发者对 BeanFactory 进行最后的定制化修改。在 Spring Boot 中,这个方法被广泛用于动态调整 BeanFactory 配置、注册自定义组件、修改 Bean 定义等场景,是容器初始化过程中重要的扩展点。

2025-08-01 14:31:52 853

原创 【源码解析】SpringBoot源码解析之BeanFactory的初始化

Spring 容器初始化过程中的关键步骤。为 BeanFactory 设置了基础环境、依赖解析规则、后置处理器等核心组件,确保后续 Bean 的创建和管理能够正常工作。

2025-08-01 14:31:03 933

原创 【源码解析】SpringBoot源码解析之模板方法initPropertySources()的使用

initPropertySources() 是 Spring 框架中 AbstractApplicationContext 类定义的模板方法(默认空实现),其核心作用是允许开发者在容器刷新的早期阶段(属性验证之前)自定义或增强环境中的属性源(PropertySource)。在 Spring Boot 项目中,这个方法被广泛用于初始化、定制化属性源,确保特定配置在容器启动早期即可被识别和使用。

2025-08-01 14:30:16 606

原创 【源码解析】SpringBoot源码解析之刷新应用上下文

SpringBoot 启动和刷新 Spring 应用上下文,完成 Bean 的创建、依赖注入和容器初始化等关键过程。

2025-08-01 14:29:27 686

原创 【源码解析】SpringBoot源码解析之Bean注册到容器

SpringBoot Bean容器初始化的第一步,先将所有的Bean注册到容器,后续进行实例化。

2025-08-01 14:28:33 1150

原创 【WebSocket】WebSocket 网络通信协议

WebSocket 是一种网络通信协议,旨在提供全双工(双向)通信渠道,允许客户端与服务器之间进行实时数据交换。它基于 TCP 连接,并且通常用于需要低延迟、持续连接的应用场景,如实时聊天、在线游戏、股票行情更新等。

2025-08-01 14:27:03 702

原创 【事件监听器】Spring事件监听器ApplicationEvent

事件监听器,观察者模式的再度抽象。 解耦组件依赖,降低耦合度,增强代码扩展性和维护性,支持异步处理,提升系统性能,贴合 Spring 生态,集成便捷,灵活性高,支持事件过滤。Spring 事件监听器通过 “发布 - 订阅” 模式,从解耦、扩展性、性能、集成性等多个维度优化了组件交互方式,特别适合复杂业务场景下的模块化开发,是 Spring 生态中实现 “高内聚、低耦合” 设计的重要工具。

2025-08-01 14:25:28 929

原创 【集群部署】Nacos集群部署

Nacos集群部署,负载均衡和故障转移

2025-08-01 14:24:16 92

原创 【链式过滤器】自定义链式过滤器设计多因子认证

在多数场景中,不同的方式完成相同的工作的时候,往往都是各自实现各自的方法,最终都实现相同的功能,比如多因素认证。这个场景就比较适合使用链式过滤器开发,可以达到动态配置过滤器的数量以及顺序。

2025-08-01 14:22:46 577

原创 【设计模式】深入理解 Java 设计模式之装饰者模式

通过“包装”方式动态为对象添加功能而不改变原始结构;接着详解核心结构(抽象组件、具体组件、抽象装饰者、具体装饰者)及工作原理,以咖啡添加调料为例说明动态扩展逻辑;随后提供完整Java代码实现(含抽象组件Beverage、具体组件Espresso、装饰者CondimentDecorator及Milk等);还分析了其灵活性高、符合开闭原则等优点与对象数量多等缺点,并列举Java I/O流、Swing组件等应用场景,最终总结装饰者模式在构建灵活可扩展系统中的价值。

2025-08-01 14:19:58 655

原创 【设计模式】Java适配器模式详解:接口兼容的艺术

适配器模式(Adapter Pattern)是结构型设计模式的核心成员之一,它解决的核心问题是接口不兼容——允许将一个类的接口转换成客户端期望的另一个接口,从而使原本因接口不匹配而无法协作的类能够协同工作。在Java世界中,适配器模式如同一个“接口转换器”,在JDK、Spring等框架中无处不在。

2025-08-01 14:18:14 593

原创 【设计模式】单例模式,饿汉式、懒汉式、双重检查、静态内部类和枚举

单例模式旨在保证一个类在软件系统中仅存在一个实例,并提供静态方法获取该实例。文章依次讲解了饿汉式(静态常量、静态代码块)、懒汉式(线程不安全、线程安全同步方法)、双重检查、静态内部类、枚举等多种实现方式,每种方式均附代码示例,分析其优缺点(如是否懒加载、线程安全性、效率等),并给出实际开发中的推荐结论,其中双重检查、静态内部类和枚举因兼顾线程安全、懒加载及效率,被列为推荐方案。

2025-08-01 14:16:09 711

原创 【源码解析】XXL-JOB源码详细解析,设计理念和技巧

内容涵盖InitializingBean与DisposableBean接口的应用、核心组件(如任务触发线程池、失败任务监控、执行器注册监控等)的初始化流程,详细剖析了任务调度的双线程池设计、超时统计、执行器路由策略、分片广播模式等机制,以及任务触发的核心逻辑(参数处理、执行器地址选择、远程调用、日志记录),并解析了BEAN模式任务处理、FutureTask应用及执行器初始化(任务处理器扫描注册、Glue工厂刷新、执行器启动)等关键环节,全面阐述了XXL-JOB的实现原理与核心设计。

2025-08-01 14:13:33 377

原创 【线程池监控】基于dynamictp动态线程池,配置prometheus和Grafana进行监控

本文详细介绍了使用dynamictp作为线程池框架,并结合Prometheus和Grafana实现线程池监控的完整流程。内容涵盖项目接入(Maven依赖、配置文件、启动类注解及使用方式)、监控指标采集配置,以及通过Docker-Compose安装部署Prometheus和Grafana的步骤,包括数据持久化、仪表板导入与验证。此外,还讲解了如何配置邮件报警功能,实现线程池异常(如队列满、参数变更)时的告警通知,为线程池的动态管理和监控提供了全面指导。

2025-08-01 14:10:26 770

原创 【多线程】多线程组件的使用场景及使用方法,乐观锁、分段锁等使用场景

本文围绕Java多线程编程核心技术展开,系统讲解了多线程同步工具(CountDownLatch、CyclicBarrier)、并行流(parallelStream)的使用与优化;深入分析了线程安全问题(如银行转账超转、死锁)及解决方案(synchronized、ReentrantLock、乐观锁、原子类等);探讨了线程顺序执行控制(CountDownLatch、Phaser、CompletableFuture)、高并发库存扣减优化(分段锁、Redis预扣、令牌桶限流);

2025-08-01 14:06:00 802

原创 Java配置HTTP2协议发送请求

Java配置HTTPS/HTTP2协议发送请求

2023-04-21 18:02:59 1236 1

空空如也

空空如也

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

TA关注的人

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