Spring Boot 3中server.error.include-message: on-param配置不生效求助
Spring Boot 3.1.4中server.error.include-message: on-param不生效的原因及解决方法
- on-param配置的核心逻辑:该配置生效的前提是请求中携带了指定触发参数,默认参数为
debug。只有当请求包含这个参数时,响应才会返回错误消息。你之前看不到"message",大概率是请求未携带该参数。 - 验证方式:发起请求时添加
?debug=true参数(比如GET /your-endpoint?debug=true),此时应该能正常看到抛出的错误信息。 - 配置写法注意:Spring Boot 3.x中正确的配置值是
on-param(短横线分隔),on_param是错误写法,所以之前测试下划线版本无效是正常的,需使用短横线格式。 - 自定义触发参数:若不想用默认的
debug参数,可额外配置server.error.include-message-param=自定义参数名,比如设置为server.error.include-message-param=show-error,之后请求携带?show-error=true即可触发错误消息展示。 - 排查自定义异常处理器:如果确认携带参数仍不生效,检查项目中是否存在
@ControllerAdvice或自定义错误处理器,这类自定义逻辑可能覆盖了Spring Boot默认的错误处理规则,需要在处理器中手动读取配置并判断触发参数是否存在,再决定是否返回错误消息。
内容的提问来源于stack exchange,提问作者BlueBoy
相关产品推荐
相关产品推荐

