1

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

  • 使用 UUID 作为参数类型会导致异常
  • 所以我使用了字符串参数,接受 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);
    }
4

0 回答 0