我對@RestController注解的理解
對@RestController注解的理解
在Spring中@RestController的作用
等同于@Controller + @ResponseBody。
所以想要理解@RestController注解
就要先了解@Controller和@ResponseBody注解
@Controller注解
在一個類上添加@Controller注解,表明了這個類是一個控制器類。
這里省略對Controller注解的說明了。
@ResponseBody注解
@ResponseBody表示方法的返回值直接以指定的格式寫入Http response body中,而不是解析為跳轉路徑。
格式的轉換是通過HttpMessageConverter中的方法實現(xiàn)的,因為它是一個接口,因此由其實現(xiàn)類完成轉換。
如果要求方法返回的是json格式數(shù)據,而不是跳轉頁面,可以直接在類上標注@RestController,而不用在每個方法中標注@ResponseBody,簡化了開發(fā)過程。
@Controller和@RestController的區(qū)別:
@Controller:
- 在對應的方法上,視圖解析器可以解析return 的jsp,html頁面,并且跳轉到相應頁面
- 若返回json等內容到頁面,則需要加@ResponseBody注解
@RestController:
- 相當于@Controller+@ResponseBody兩個注解的結合
- 返回json數(shù)據不需要在方法前面加@ResponseBody注解了
- 但使用@RestController這個注解,就不能返回jsp,html頁面,視圖解析器無法解析jsp,html頁面
代碼示例
BuyerProductController
/** * 買家商品 * Created by 李柏霖 * 2020/10/17 20:11 */ package com.lbl.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/buyer/product") public class BuyerProductController { @GetMapping("/list") public void list(){ } }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java8 集合 多字段 分組 統(tǒng)計個數(shù)代碼
這篇文章主要介紹了java8 集合 多字段 分組 統(tǒng)計個數(shù)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08SpringBoot2.0 整合 SpringSecurity 框架實現(xiàn)用戶權限安全管理方法
Spring Security是一個能夠為基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。這篇文章主要介紹了SpringBoot2.0 整合 SpringSecurity 框架,實現(xiàn)用戶權限安全管理 ,需要的朋友可以參考下2019-07-07spring+apollo動態(tài)獲取yaml格式的配置方式
這篇文章主要介紹了spring+apollo動態(tài)獲取yaml格式的配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04