Spring Webflow DataBinding通过构造函数绑定到不可变对象?

Spe*_*dge 6 spring immutability spring-webflow

有没有办法在Spring webflow中使用不可变对象作为视图状态中的模型?我知道Spring webflow通常倾向于设置这类东西,但我想知道是否有人知道可以使用构造函数处理数据绑定的自定义DataBinder或WebDataBinder?

我也知道有这个(SPR-1488) JIRA针对这个问题的任务,它提倡直接现场访问.人们是否主张这种做事方式?对我来说,感觉不太对劲.

谢谢,

斯图尔特

Ada*_*ent 2

我举了一个例子,说明如何使用 Jackson 的 ObjectMapper 来做到这一点(除了 JSON 之外,它还可以很好地将任何内容映射到不可变对象)。

https://gist.github.com/4458079

需要注意的几件事是,@ModelAttribute如果您想使用 Spring 的验证 ( BindingResult),则无法使用,除非您替换所有参数解析器。但是@Valid(经过验证)应该可以工作,并且@RequestBody也可以(没有验证)与我的解决方案一起工作。

尽管它使用 Jackson 将请求参数映射到对象,但不涉及 JSON 处理。如果您想要,请参阅MappingJacksonHttpMessageConverter

作为一个软弱无耻的插件,我需要将其与我的不可变 ORM(称为:JIRM)结合使用,因为我更喜欢消息驱动架构的不可变对象。