常用的ResponseEntity.BodyBuilder和自定義ResponseEntity的實例
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)先級高于@ResponseBody。在不是ResponseEntity的情況下才去檢查有沒有@ResponseBody注解。如果響應類型是ResponseEntity可以不寫@ResponseBody注解,寫了也沒有關系。
2.ResponseEntity 是在 org.springframework.http.HttpEntity 的基礎上添加了http status code(http狀態(tài)碼),用于RestTemplate以及@Controller的HandlerMethod。它在Controoler中或者用于服務端響應時,作用是和@ResponseStatus與@ResponseBody結合起來的功能一樣的。用于RestTemplate時,它是接收服務端返回的http status code 和 reason的。
簡單直接的講:
- @ResponseBody可以直接返回Json結果
- @ResponseEntity不僅可以返回json結果,還可以定義返回的HttpHeaders和HttpStatus
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java使用httpRequest+Jsoup爬取紅藍球號碼
本文將結合實例代碼,介紹Java使用httpRequest+Jsoup爬取紅藍球號碼,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07
淺談synchronized加鎖this和class的區(qū)別
synchronized 是 Java 語言中處理并發(fā)問題的一種常用手段,本文主要介紹了synchronized加鎖this和class的區(qū)別,具有一定的參考價值,感興趣的可以了解一下2021-11-11
基于Mybatis-Plus攔截器實現MySQL數據加解密的示例代碼
用戶的一些敏感數據,例如手機號、郵箱、身份證等信息,在數據庫以明文存儲時會存在數據泄露的風險,因此需要進行加密,解密等功能,接下來本文就給大家介紹基于Mybatis-Plus攔截器實現MySQL數據加解密,需要的朋友可以參考下2023-07-07

