常用的ResponseEntity.BodyBuilder和自定義ResponseEntity的實(shí)例
ResponseEntity.ok() 和 ResponseEntity.BodyBuilder()
返回200(HttpStatus.SC_OK)
@RequestMapping("/check") public ResponseEntity<String> check() { BodyBuilder builder = (BodyBuilder) ResponseEntity.ok(); builder.allow(HttpMethod.GET); builder.contentType(MediaType.TEXT_HTML); builder.eTag("W/MyeTag\""); return builder.body("Hello World!"); }
ResponseEntity.status()
使用HttpStatus
返回需要的HttpCode
@RequestMapping("/handle") public ResponseEntity<String> handle() { return ResponseEntity.status(HttpStatus.SC_CREATED).body("Created Success"); }
ResponseEntity.created()
返回201(HttpStatus.SC_CREATED)
@RequestMapping("/handle") public ResponseEntity<Void> handle() { URI location = null; try { location = new URI("http://www.concretepage.com/"); } catch (URISyntaxException e) { e.printStackTrace(); } return ResponseEntity.created(location).build(); }
ResponseEntity.accepted()
返回202(HttpStatus.SC_ACCEPTED)
@RequestMapping("/handle") public ResponseEntity<String> handle() { return ResponseEntity.accepted().body("Hello World!"); }
ResponseEntity.noContent()
返回204(HttpStatus.SC_NO_CONTENT)
@RequestMapping("/handle") public ResponseEntity<Void> handle() { return ResponseEntity.noContent().build(); }
ResponseEntity.badRequest()
返回400(HttpStatus.SC_BAD_REQUEST)
@RequestMapping("/handle") public ResponseEntity<String> handle() { return ResponseEntity.badRequest().body("Bad Request"); }
ResponseEntity.notFound()
返回404(HttpStatus.SC_NOT_FOUND)
@RequestMapping("/handle") public ResponseEntity<Void> handle() { return ResponseEntity.notFound().build(); }
ResponseEntity和ResponseBody的區(qū)別
1.ResponseEntity的優(yōu)先級(jí)高于@ResponseBody。在不是ResponseEntity的情況下才去檢查有沒有@ResponseBody注解。如果響應(yīng)類型是ResponseEntity可以不寫@ResponseBody注解,寫了也沒有關(guān)系。
2.ResponseEntity 是在 org.springframework.http.HttpEntity 的基礎(chǔ)上添加了http status code(http狀態(tài)碼),用于RestTemplate以及@Controller的HandlerMethod。它在Controoler中或者用于服務(wù)端響應(yīng)時(shí),作用是和@ResponseStatus與@ResponseBody結(jié)合起來的功能一樣的。用于RestTemplate時(shí),它是接收服務(wù)端返回的http status code 和 reason的。
簡(jiǎn)單直接的講:
- @ResponseBody可以直接返回Json結(jié)果
- @ResponseEntity不僅可以返回json結(jié)果,還可以定義返回的HttpHeaders和HttpStatus
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用httpRequest+Jsoup爬取紅藍(lán)球號(hào)碼
本文將結(jié)合實(shí)例代碼,介紹Java使用httpRequest+Jsoup爬取紅藍(lán)球號(hào)碼,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07淺談synchronized加鎖this和class的區(qū)別
synchronized 是 Java 語(yǔ)言中處理并發(fā)問題的一種常用手段,本文主要介紹了synchronized加鎖this和class的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11SpringCloud?Feign請(qǐng)求頭刪除修改的操作代碼
這篇文章主要介紹了SpringCloud?Feign請(qǐng)求頭刪除修改,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03springboot validator枚舉值校驗(yàn)功能實(shí)現(xiàn)
這篇文章主要介紹了springboot validator枚舉值校驗(yàn)功能實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01SpringBoot中Bean拷貝及工具類封裝的實(shí)現(xiàn)
本文主要介紹了SpringBoot中Bean拷貝及工具類封裝的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05基于Mybatis-Plus攔截器實(shí)現(xiàn)MySQL數(shù)據(jù)加解密的示例代碼
用戶的一些敏感數(shù)據(jù),例如手機(jī)號(hào)、郵箱、身份證等信息,在數(shù)據(jù)庫(kù)以明文存儲(chǔ)時(shí)會(huì)存在數(shù)據(jù)泄露的風(fēng)險(xiǎn),因此需要進(jìn)行加密,解密等功能,接下來本文就給大家介紹基于Mybatis-Plus攔截器實(shí)現(xiàn)MySQL數(shù)據(jù)加解密,需要的朋友可以參考下2023-07-07java的Jackson框架實(shí)現(xiàn)輕易轉(zhuǎn)換JSON
本篇文章主要介紹了java的Jackson框架實(shí)現(xiàn)輕易轉(zhuǎn)換JSON,Jackson將Java對(duì)象轉(zhuǎn)換成json對(duì)象和xml文檔,同樣也可以將json、xml轉(zhuǎn)換成Java對(duì)象,有興趣的可以了解一下。2017-02-02