李彦军

李彦军

基础设施起步依赖范式 (Infrastructure Starter Pattern)

在后端架构开发(尤其是基于 Spring Boot 的微服务体系)中,这种“自动配置 + 统一拦截”的设计模式被称为 “基础设施起步依赖范式 (Infrastructure Starter Pattern)”。 当你需要为全公司或全项目提供一个通用功能(如 XSS、限流、日志、异常处理)时,可以套用

@ConditionalOnBean条件注解

@ConditionalOnBean 就是它们的反面镜:“只有当某个特定的 Bean 已经存在于容器中时,我才会被实例化。” 这通常用于依赖性配置。例如:只有当你配置了“数据库连接池(DataSource)”,我才去加载“事务管理器(TransactionManager)”。 1. 核心逻辑 它的判

@ConditionalOnProperty条件注解

@ConditionalOnProperty 就是根据 配置文件(application.properties 或 yml)中的开关 来决定是否加载某个组件。它是实现“功能开关”最常用的手段。 1. 核心逻辑 简单来说,它的逻辑是:“去配置文件里看一眼,如果那个配置项的值符合我的预期,我就启动;否则

@ConditionalOnMissingBean条件注解

在 Spring Boot 的魔法书里,@ConditionalOnMissingBean 可能是最能体现“大度”的注解了。它的核心逻辑非常简单:“如果你没准备,那我就亲自动手;如果你已经准备了,我就靠边站。” 它是实现 Spring Boot 自动配置(Auto-configuration) 的基

Dcoker部署seata-server

第一步:获取正确的配置文件 不要手写配置文件,直接从官方 2.5.0 镜像中复制标准的 application.yml 出来,然后在此基础上修改。 启动一个临时的 2.5.0 容器(如果当前容器已挂载错误配置,先停止它): docker run -d --name seata-temp ap

RabbitMQ 管理后台功能详解

Overview 1. Totals (全局统计) 这部分展示了整个 RabbitMQ 服务集群的汇总信息。 Queued messages (last minute): 显示在过去一分钟内,所有队列中待处理的消息总数。这是一个非常重要的指标,反映了消息积压情况。如果这个数字持续增长,说明消费者处理

别再抱怨 Maven 构建慢了!试试这款神器 mvnd,让你的开发效率起飞

在 Java 开发者的日常工作中,Maven 是不可或缺的伙伴。它稳定、生态丰富,几乎是行业标准。但随着项目规模的扩大,多模块(Multi-Module)架构的普及,Maven 的弊端也愈发明显:构建速度慢、JVM 频繁启动、资源消耗大。 很多团队因此转向 Gradle,但 Gradle 的学习曲线

什么是 BOM?

BOM 是一个特殊的 POM 文件,它只定义了依赖项及其版本,而不包含任何实际的代码或资源。其他项目可以通过 import这个 BOM 来继承其中定义的所有依赖版本,从而实现统一管理。 核心最佳实践 1. 单一职责:一个 BOM 对应一个逻辑模块或产品栈 这是最重要的原则。BOM 应该有一个明确的、

什么是 Spring ApplicationListener?

什么是 ApplicationListener? ApplicationListener是 Spring 框架的事件监听器接口,用于监听 Spring 应用生命周期中的各种事件。 1. 基本使用 1.1 实现 ApplicationListener 接口 import org.springframe