Spring @RequestHeader defaultValue header 参数不是必需的

Spring @RequestHeader defaultValue for header parameter that is not required

我正在尝试为不存在的可选 header 参数添加一个默认值。但是,当不包含该参数时,我注意到它没有填充默认值:

public Mono<User> getUser(
  @RequestHeader(value = "accept", defaultValue = "abc") String acceptHeader,
  ...
)

当我调试代码时,如果没有指定参数,acceptHeader 是“/”。我在网上查了一下,找不到任何原因来解释为什么会这样。不确定这是否有所作为,但我正在与 Postman 通话。有谁知道为什么会这样?我可以在 getUser 中实现代码来处理这个逻辑,但我想理想地使用注释。

/ 是默认值,因此不为空,defaultValue = "abc" 不起作用。如果您想在 accept 值中没有任何内容时做某事,请改用它 defaultValue = "abc":

if (acceptHeader.eqals("/") {
    ... do something 
}