#Spring Boot
共 15 篇文章
Spring Boot 4 的 JSON 配置没生效
Spring Boot 4 按 JsonMapper 类型决定是否创建默认 JSON mapper。已有 Bean 声明返回 ObjectMapper 时,自定义配置可能存在却没有被 HTTP 转换器采用。
依赖层摘要反复变化
相同 Boot JAR 的 dependencies 层摘要变化,可能是 tools extract 新建目录带了当时的 mtime。区分缓存复用和新层摘要,在受控提取阶段固定目录时间。
Spring Boot 3 接口末尾多一个斜杠就返回 404
Spring Boot 3 默认不再自动匹配尾部斜杠。为旧接口添加明确双映射,或对指定 GET 路径返回临时重定向,核对查询参数、上传行为和权限范围。
Kafka 消费端协议没生效
Spring Boot 4.0.7 可能把 Kafka consumer 的 security.protocol 覆盖为全局值。检查最终消费工厂配置,采用包含修复的维护版本,并分别验收生产与消费连接。
Spring Boot 的 @Value 静态字段为什么一直是 null
@Value 标注静态字段后值仍为空,检查 Spring 静态注入限制及读取时机。改为实例构造器注入,区分容器启动前、字段初始化和静态变量转存的行为。
developmentOnly 选错变体
Boot 4.0.8、4.1.1 的开发依赖配置缺少运行时属性,可能导致 Gradle 选错变体或歧义。补齐已有配置属性,同时保持开发依赖的打包排除规则。
嵌套 JAR 扫描报 EOF
Spring Boot 嵌套 JAR 扫描报 ZLIB EOF,可能来自 NestedByteChannel 部分读取后返回零。确认读取路径,再选兼容的展开布局或实际包含修复的版本。
Spring Security 配了 permitAll,为什么 POST 还是 403
permitAll 不跳过 CSRF 检查。默认会话应用先获取当前 token,再随表单或同源 JSON 请求提交;区分安全链、过期会话和请求体错误,保留 CSRF 防护。
Spring Data JPA 派生查询报 No property found
Repository 派生查询按实体属性解析。核对 Java 名与数据库列、继承的 findById 例外,以及嵌套属性的下划线路径分隔。
Spring Boot 找不到 @ConfigurationProperties 配置类 Bean
配置键存在却报配置类 Bean 找不到时,区分属性绑定与 Bean 注册。按显式启用、属性扫描或 JavaBean 组件注册处理,核对包范围及 record 构造器绑定。
Spring Boot 自定义 Hikari 数据源报 jdbcUrl is required
自定义 Hikari 数据源已有 URL 却报 jdbcUrl is required,沿 Bean 确认绑定对象。区分直接绑定 jdbc-url 与 DataSourceProperties 的 url 转换,保持两层参数前缀一致。
Spring Data JPA 批量 UPDATE 后为什么读到旧值
JPQL 批量更新不会逐个同步已加载实体。区分 flush 与刷新,审查 clearAutomatically 的全上下文脱管影响,再重新读取结果。
Spring Boot 抛出受检异常后事务没有回滚
受检异常默认不要求 Spring 回滚。检查 rollbackFor、全局回滚规则、异常捕获、代理入口与数据库事务能力,避免只改 throws。
Spring Boot 升级后报 Name for argument 错误
控制器升级后无法发现形参名时,显式指定请求名称,或在实际编译模块启用 -parameters。区分请求值缺省、编译设置与最终部署产物。
Spring Boot 同类方法调用时 @Transactional 为什么不生效
同类内部调用绕过 Spring 事务代理。按整个业务入口或独立 Bean 调整边界,区分外层已有事务、REQUIRED 与内层注解失效。


