HttpMessageNotReadableException——類缺乏默認構造器導致反序列化失敗

問題代碼:


    @PutMapping("/{courseID}")
    public ResponseEntity updateCourse(@PathVariable("courseID") long cid,
                             @RequestBody UpdateCourseDto updateCourseDto) {
		......
@Data
@AllArgsConstructor
public class UpdateCourseDto {

  private String name;
}

spring boot在嘗試將request body反序列化成UpdateCourseDto時,會先用UpdateCourseDto的無參構造器創建一個實例,而UpdateCourseDto使用了@AllArgsConstructor註解後默認的構造器就沒了,所以spring boot拋出了HttpMessageNotReadableException。
建議使用@AllArgsConstructor時一定也加上@NoArgsConstructor,因爲大多數反序列化場景都會先嚐試用無參構造器創建一個類實例。

發佈了36 篇原創文章 · 獲贊 13 · 訪問量 6501
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章