Spring MVC Jackson消息转换器:“设置器定义冲突”

时间:2019-04-10 18:26:48

标签: spring spring-boot spring-mvc jackson jackson2

我有一个带有控制器的Spring Boot应用程序,该控制器的端点接受对象作为参数,如下所示:

@RestController
public class MyController {
    @PostMapping("/Student")
    public String createStudent(@RequestBody Student student) {
        //validate and persist Student object
        return "ok";
    }
}

我的问题是Student对象有一个重载的setter方法,每当我发布到此端点时,我都会收到Jackson错误,指出存在冲突的setter方法,并且解析失败。

我已经在线搜索了,看来解决方法是将@JsonIgnore添加到其中一种设置方法中,但是Student对象来自第三方库,我根本无法对其进行编辑。 / p>

那么我该如何解决呢?有没有一种简单的“春季”方式可以完成这项工作?我曾经尝试过修改Spring的Jackson的HTTP消息转换器,但没有成功

1 个答案:

答案 0 :(得分:2)

使用MixIn功能。

interface StudentMixIn {
    @JsonIgnore
    void setName(String name);
}

并在覆盖ObjectMapper消息转换器的Jackson中注册它。

另请参阅: