在Spring 4.x中反序列化UUID

时间:2017-08-25 23:59:26

标签: java spring jackson-databind

我试图将UUID用作请求参数之一。这导致异常,NoSuchMethodException:java.util.UUID 采取的步骤:

  • 使用UUID作为参数类型导致异常
  • 所以我使用String param,接受uuid作为字符串值
  • 使用UUID.fromString()方法获取UUID 然后在代码中使用它,如下所示
  • 但是我注意到jackson-databind-2.5.5 jar中已经有 UUIDDeserializer
  • 类似的问题是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 个答案:

没有答案
相关问题