SpringBoot後端實體通過@RequestBody接收傳進來的json為Null的解決辦法
樓主今天在開發後端介面的時候,遇到了一個傷腦筋的問題,看下圖:
樓主用@RequestBody註解通過實體去接收前端的json值,前端json值和實體TerminalPosition一一對應的,結果發現怎麼傳terminalPosition這個物件都為空,很奇怪;
樓主做實驗發現把@RequestBody TerminalPosition terminalPosition 改成 @RequestBody String json看看,
結果發現json果然是我傳入json的字串,於是樓主知道,不是傳json過程中的錯誤,而是接受實體的過程中注入出現了問題;
結果定位到了TerminalPosition這個實體類中,如下圖:
發現這個類使用的是@Getter和@Setter註解,省略掉了我們常用的eclipse生成的getter和setter方法,這樣更加的方便;
但是接收引數為空,最終請教了同事前輩找到了問題的所在:
是因為eclipse缺少lombok.jar包和沒有安裝lombok的環境,因為使用@Getter和@Setter註解,並且使用@RequestBody來接收前端json字串的話是需要這個lombok的環境;
網上很多文章對於lombok的安裝講的不是很細節,樓主用自己的語言將lombok的安裝重頭細節的講一遍:
開啟連結可以看到如下圖:(點選紅色箭頭即可下載)
2.下載完畢後開啟下載的目錄;我這裡是D盤的根目錄:
3.開啟cmd命令視窗:輸入以下指令
需要注意到:後面跟的路徑是自己下載lombok的jar包的路徑,每個人可能都不同,按自己的實際路徑來
4.輸入命令之後會彈出一個對話方塊如下圖:
紅色箭頭說明:因為這個對話方塊沒有定位到我的eclipse安裝目錄,那麼就需要點選這個紅色箭頭所指的按鈕,選到我們的eclipse安裝目錄即可;(一般都會自動獲取到我們的eclipse安裝目錄)
5.點選上圖的Install/Update,然後點選Quit Installer 即可;
提示:這裡是通過對話方塊安裝,手動安裝的話自己百度,很簡單!
6.找到我們的ecllipse安裝目錄:發現多了一個lombok.jar包
7.於是開啟eclipse.ini檔案檢視:多了這一行程式碼
有了6,7點的情況,就證明我們的lombok環境已經裝好了,eclipse可以識別lombok了
8.eclipse可以識別lombok,不是意味著你現在什麼都不要做了,還需要在工程中引入lombok.jar包即可(maven工程為例):
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
大家需要注意的一點是:
我工程中引入的lombok的版本號和裝環境的時候的lombok的版本號是一樣的,一定要注意版本號要相同,不然也沒有效果;
9.上面步驟都做完以後,需要clean一下專案,然後重啟eclipse即可
10現在大家可以重新試試了,傳json值應該可以接受到了!