溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoothttp中@RestController的原理是什么

發(fā)布時(shí)間:2021-07-08 17:05:29 來源:億速云 閱讀:485 作者:Leah 欄目:編程語言

SpringBoothttp中@RestController的原理是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

@RestController

@RestController = @Controller + @ResponseBody組成,等號(hào)右邊兩位同志簡單介紹兩句,就明白我們@RestController的意義了:

@Controller 將當(dāng)前修飾的類注入SpringBoot IOC容器,使得從該類所在的項(xiàng)目跑起來的過程中,這個(gè)類就被實(shí)例化。當(dāng)然也有語義化的作用,即代表該類是充當(dāng)Controller的作用

@ResponseBody 它的作用簡短截說就是指該類中所有的API接口返回的數(shù)據(jù),甭管你對(duì)應(yīng)的方法返回Map或是其他Object,它會(huì)以Json字符串的形式返回給客戶端,本人嘗試了一下,如果返回的是String類型,則仍然是String。

@RestController@RequestMapping("test")public class SampleController {  @GetMapping  public Map testGet() {    return new HashMap<String, String>(){{      put("name", "springboot");    }};  }  @GetMapping(path = "str")  public String testGetStr() {    return "OK";  }}

這部分代碼對(duì)于Map返回則是JSON String,對(duì)于String則仍然是String

當(dāng)將@RestController換成@Controller之后,對(duì)于/test的返回值如下圖:

從報(bào)錯(cuò)可以看見,當(dāng)@Controller修飾的時(shí)候,Spring以為會(huì)返回一個(gè)View(也就是MVC中的那C)但是返回的東西卻是一個(gè)Map。

關(guān)于SpringBoothttp中@RestController的原理是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI