一次手贱,在增加完拦截器,觉得封装的自定义返回类的setter和getter是多余的没用过,用的是构造函数,就把它们删了,结果一直返回 406,就一直找拦截器的原因,没用发觉是返回类的锅。添加回去就好了。
在 Spring Boot 中,如果封装了一个返回类并且删除了它的 getter 和 setter 方法,那么 Jackson(默认的 JSON 序列化库)将无法正确序列化和反序列化这个类的实例。由于 Jackson 依赖于 getter 方法来获取对象属性的值进行序列化,缺少这些方法会导致序列化失败,从而导致 HTTP 406 Not Acceptable 错误。