1. 程式人生 > >SpringBoot後端實體通過@RequestBody接收傳進來的json為Null的解決辦法

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值應該可以接受到了!