Java Spring boot中的自定义验证器

Java Spring boot中的自定义验证器,java,spring-boot,Java,Spring Boot,有没有一种方法可以实现@RequestHeader的自定义验证器并从控制器中移动if-else语句 @PostMapping(path_to_endpoint) public Map<String, Object> changePassword(@Parameter(hidden = true) @RequestHeader String userId, @RequestHeader String

有没有一种方法可以实现@RequestHeader的自定义验证器并从控制器中移动if-else语句

@PostMapping(path_to_endpoint)
public Map<String, Object> changePassword(@Parameter(hidden = true) @RequestHeader String userId,
                                            @RequestHeader String old_password,
                                            @RequestHeader String new_password,
                                            @RequestHeader String confirm_password,
                                            HttpServletResponse http_response) {

    final Map<String, Object> response = new HashMap<>();

    if (new_password.equals(confirm_password)) {
//do some login here
    } else {
      httpResponse.setStatus(SC_BAD_REQUEST);
      response.put(STATUS, 400);
      response.put(MESSAGE, "Passwords do not match!!");
    }
    return response;
  }
@PostMapping(路径到端点)
公共映射changePassword(@Parameter(hidden=true)@RequestHeader字符串userId,
@RequestHeader字符串旧密码,
@RequestHeader字符串新密码,
@RequestHeader字符串确认密码,
HttpServletResponse(http\U响应){
最终映射响应=新HashMap();
if(新密码等于(确认密码)){
//在这里登录
}否则{
httpResponse.setStatus(SC_BAD_请求);
答复.付诸表决(状态,400);
response.put(消息“密码不匹配!!”);
}
返回响应;
}

请注意,将这些作为请求头发送是非常奇怪的;更常见的是可以收集到
@modeldattribute
中的表单参数,或者是在代码库中找到的JSON
@RequestBody
@chrylis-cautiouslyoptimistic。现在,我正在尝试重构它。