Spring Boot 指定外部配置文件主要有以下几种方式: 一、默认扫描位置(不需要额外指定) Spring Boot 启动时会自动扫描以下位置(JAR 包所在目录): ./config/子目录/ ./config/ ./ ← JAR 包同级目录 所以最简单的方式就是把配置文件直接放在 JAR 包旁边: /app/ […]
Spring Boot 指定外部配置文件主要有以下几种方式: 一、默认扫描位置(不需要额外指定) Spring Boot 启动时会自动扫描以下位置(JAR 包所在目录): ./config/子目录/ ./config/ ./ ← JAR 包同级目录 所以最简单的方式就是把配置文件直接放在 JAR 包旁边: /app/ […]
优先级从高到低排列,高优先级覆盖低优先级的同名属性。 一、运行时参数(最高) 1. 命令行参数 java -jar app.jar --server.port=9090 2. JVM 系统属性 java -Dserver.port=9090 -jar app.jar 3. OS 环境变量 export SERVER_P […]
服务探活端口和业务端口不一致,本质上是用一个"旁路"来代表主服务的健康状态。 一、最核心的问题:探活结果不准 1. 探活端口正常 ≠ 业务正常 探活端口通常是一个独立的 HTTP 端点(比如 Spring Boot Actuator 的 /health 跑在另一个端口),它只检查 JVM 能不能响应 […]
SchedulingConfigurer 是 Spring 定时任务的高级配置接口,用来替代简单的 @Scheduled 注解。 它的核心作用: 让定时任务支持:动态修改执行周期、程序运行中改 cron、从数据库/配置中心读取 cron 表达式,不用重启服务。 一、它解决什么问题? @Scheduled(cron = […]
Spring WebFlux作为Spring生态中异步非阻塞编程的核心框架,其底层原理构建于响应式流规范、事件驱动模型与非阻塞I/O三大基石之上。理解这些底层机制,不仅能解释WebFlux为何能支撑高并发,更能帮助开发者规避实践中的“伪异步”陷阱,充分发挥其性能优势。本文将从核心规范、线程模型、请求流转、数据处理四个维 […]
在高并发I/O密集型场景中,传统Spring MVC的同步阻塞模型逐渐暴露出资源利用率低、线程开销大的瓶颈。而Spring WebFlux作为Spring生态下的响应式编程框架,凭借异步非阻塞特性与响应式流设计,成为解决高并发问题的优选方案。本文将从底层原理、核心组件、编程模型、性能对比、落地实践五个维度,全方位拆解W […]
在高并发系统设计中,“解耦”与“高效”是永恒的追求。我们常常依赖MQ(如RocketMQ、Kafka)实现异步通信,但对于单机内的模块协作,Spring内置的事件驱动机制(ApplicationEvent)堪称“轻量王者”——无需搭建中间件,通过注解即可实现发布-订阅模式,让系统像高效协作的咖啡团队般应对流量洪峰。 本 […]
在后端开发中,树形结构是高频场景——商品分类树、菜单权限树、组织架构树、地区层级树等,几乎贯穿了电商、ERP、权限管理等各类系统。但随着业务扩张,节点数量从几千增长到几万、几十万时,传统实现往往会陷入“响应超时、数据库雪崩”的困境。 某电商项目曾遭遇典型性能灾难:首页分类树加载耗时3-5秒,高峰期数据库连接池耗尽导致系 […]
在Spring生态中,HTTP客户端一直是连接服务、集成外部API的核心组件。从早期的RestTemplate到如今的WebClient和RestClient,Spring的HTTP客户端方案不断演进,以适应现代应用架构的需求。本文将深入解析RestTemplate的"退役"之路、新方案的设计理念, […]
SpringBoot数据访问框架抉择:MyBatis vs Spring Data JPA 从原理到实战全解析 “项目都立项一周了,数据访问框架还没定下来?”“用MyBatis吧,SQL能自己掌控,后期优化方便!”“不行,JPA开发快,简单CRUD不用写SQL,两周就能出原型!”——这种因框架选择引发的争论,几乎是每个 […]
作为Java生态中最流行的开发框架,Spring Boot凭借"约定优于配置"的理念,让开发者摆脱了繁琐的XML配置,快速搭建生产级应用。但多数人日常仅使用其20%的基础功能(如自动配置、嵌入式容器),却忽略了那些能让开发效率翻倍、系统稳定性飙升的"隐藏神器"。本文将围绕Spri […]
前几天在做代码Review的时候,同事指出了一个让我震惊的问题:我们项目中满天飞的 @Autowired 注解,居然不是Spring官方推荐的最佳实践!更让人意外的是,Spring官方文档悄悄地在多个地方暗示开发者应该优先使用 @Resource而不是@Autowired。 这个发现让我深挖了Spring依赖注入的底层 […]
1. 引言 在 SpringBoot 的演进历程中,3.0 版本带来了一项颠覆性变更——取消了长期作为自动配置与扩展机制核心的 spring.factories 文件。这一调整对习惯旧版本开发的工程师而言,意味着需要重新理解新机制并完成迁移。本文将从 spring.factories 的核心作用切入,深入剖析取消它的原 […]
Spring Boot 提供了大量注解用于简化配置和开发,以下是核心常用注解分类及实战用法: 一、Bean 相关注解 1. @Component 作用:标识普通组件,被 Spring 容器自动扫描注册为 Bean。 场景:通用层(工具类、非 MVC 组件)。 @Component public class MyUtil […]
SpringBoot以其强大的自动配置和丰富的生态系统成为Java开发的首选框架。除了核心功能外,SpringBoot及其依赖的Spring框架还包含大量实用工具类,它们可以显著简化日常开发工作。本文将介绍49个常用工具类,并通过简洁的代码示例展示它们的基本用法。 字符串处理工具类 1. StringUtils imp […]
你可以迷茫,但不要虚度。
COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.