У вас не может быть необязательных переменных пути, но у вас может быть два метода контроллера, которые вызывают один и тот же сервисный код:
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico(
@PathVariable(value="nome")@Value("Bar") String nome,
@PathVariable(value="cognome")@Value("Foo") String cognome) {
return "Your Return Here;
}
И решение выглядит следующим образом
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico() {
return "Your Null Return Here;
}
Если у вас более одного или максимум двух необязательных элементов пути, вам следует серьезно подумать о переключении нескольких из них для запроса параметров.