Десериализация UUID весной 4.x
Я пытался использовать UUID в качестве одного из параметров запроса. это приводит к исключению, NoSuchMethodException: java.util.UUID Предпринятые шаги:
- Использование UUID в качестве типа параметра приводит к исключению
- Поэтому я использовал строковый параметр, принимаю uuid в качестве строкового значения
- Используйте метод UUID.fromString() для получения UUID, а затем используйте его в коде, как показано ниже
- Однако я заметил, что класс UUIDDeserializer уже есть в jar- jack -databind-2.5.5 jar
- Подобная проблема наблюдается для класса java8 LocalDate, который не имеет общедоступного конструктора по умолчанию, который может быть решен с помощью json mixins, но UUID имеет десериализатор в отличие от LocalDate
Как я могу заставить Spring создавать UUID из строки автоматически и получать объект UUID вместо необходимости вручную расширять StdDeserializer? Есть ли какая-нибудь аннотация?
@RequestMapping(value = "/users", method = {RequestMethod.GET})
@ResponseBody
public User getUserByID(String id) {
UUID uuid = UUID.fromString(id); // explicit conversion
return usersManager.getUserByID(uuid);
}
@RequestMapping(value = "/users", method = {RequestMethod.GET})
@ResponseBody
public User getUserByID(UUID id) {
return usersManager.getUserByID(id);
}