Десериализация 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);
    }

0 ответов

Другие вопросы по тегам