在Spring Data(Fowler)的新版本中,可以将接口传递给Spring MVC控制器操作,Spring Data会自动创建代理实现并将值绑定到此代理对象。博客文章中给出了一个示例,描述了Spring Data Fowler中的一些新功能。 点击此处查看。
我的问题是,使用Jackson反序列化JSON时是否也可以这样做?例如,像这样:
然而,这会导致以下异常:
我可以使用DTO类来处理上述方法(或避免使用JSON),但是在反序列化JSON时是否可以使用像博客文章示例中的接口与Jackson库一起使用?
interface Form {
@NotBlank String getName();
@NotBlank String getText();
}
@Controller
@RequestMapping(value = "/guestbook")
class GuestbookController {
@RequestMapping(method = RequestMethod.GET)
String guestbook(Form form, Model model) { ... }
@RequestMapping(method = RequestMethod.POST)
String guestbook(@Valid Form form, Errors errors, Model model) { ... }
}
我的问题是,使用Jackson反序列化JSON时是否也可以这样做?例如,像这样:
interface Form {
@NotBlank String getName();
@NotBlank String getText();
}
@Controller
@RequestMapping(value = "/guestbook")
class GuestbookController {
@RequestMapping(method = RequestMethod.POST)
String guestbook(@Valid @RequestBody Form form) { ... }
}
然而,这会导致以下异常:
我了解问题所在,但是否有解决方案不需要我创建一个实现我的接口的类或编写大量代码呢?是否有一种比此方法更简单的方法?因为否则,我可能会采用DTO方法,但我发现如果我可以像示例中那样仅使用接口,那就太酷了。无法构造表单的实例,问题:抽象类型需要映射到具体类型,具有自定义反序列化器或使用其他类型信息进行实例化
我可以使用DTO类来处理上述方法(或避免使用JSON),但是在反序列化JSON时是否可以使用像博客文章示例中的接口与Jackson库一起使用?