我想在我的命令 dto 中集成 vavr 验证库,这样当命令 dto 从请求反序列化时,静态工厂的返回类型将为 Try 但杰克逊抛出以下错误:
类型定义错误:[简单类型,类 com.foo.command.FooCommand];嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例
com.foo.command.FooCommand
(没有创建者,如默认构造,存在):无法从对象值反序列化(没有基于委托或属性的创建者)
这是 FooCommand
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public final class FooCommand {
private String foo;
private String bar;
@JsonCreator
public static Try<FooCommand> of(
@JsonProperty("foo") String foo,
@JsonProperty("bar") String bar
) {
return Try.of(() -> {
//Validate values
});
}
}
我使用的是spring 5,它被注释为将请求主体自动反序列化为控制器参数。这样的事情可能吗?提前致谢。