¿Puedo usar la anotación @Requestparam para una solicitud de publicación?

Tengo este método de controlador:

@PostMapping(
        value = "/createleave",
        params = {"start","end","hours","username"})
public void createLeave(@RequestParam(value = "start") String start,
                        @RequestParam(value = "end") String end,
                        @RequestParam(value = "hours") String hours,
                        @RequestParam(value = "username") String username){
    System.out.println("Entering createLeave " + start + " " + end + " " + hours + " " + username);
    LeaveQuery newLeaveQuery = new LeaveQuery();
    Account account = accountRepository.findByUsername(username);
    newLeaveQuery.setAccount(account);
    newLeaveQuery.setStartDate(new Date(Long.parseLong(start)));
    newLeaveQuery.setEndDate(new Date(Long.parseLong(end)));
    newLeaveQuery.setTotalHours(Integer.parseInt(hours));
    leaveQueryRepository.save(newLeaveQuery);
}

Sin embargo, cuando envío una solicitud de publicación a este punto final obtengo lo siguiente

"{"timestamp":1511444885321,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.UnsatisfiedServletRequestParameterException","message":"Parameter conditions \"start, end, hours, username\" not met for actual request parameters: ","path":"/api/createleave"}"

Cuando elimino el argumento params del@PostMapping Anotación Recibo un error más general, dirá que no puede encontrar el primer parámetro requerido (inicio), mientras que realmente se envía junto con los parámetros final, horas y nombre de usuario.

¿Cómo obtener param en el método post spring mvc?

He leído en esta publicación que@RequestParam solo se puede usar para obtener métodos, pero si elimino@RequestParam y seguir con el argumento de los params del@PostMapping anotación todavía no funciona. Sé que puedo usar@RequestBody pero no quiero hacer una clase solo para esos 4 parámetros. ¿Alguien puede decirme cómo puedo hacer que esto funcione?

Gracias

EDITAR: estoy leyendo aquíhttps://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html#params-- que el argumento no es exactamente lo que pensé que era. Parece ser usado como una condición. Si un conjunto de parámetros coincide con un valor, se activará el método del controlador del punto final.

Respuestas a la pregunta(3)

Su respuesta a la pregunta