我试图使用 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);
}