【SpringBoot】 http請(qǐng)求注解之@RestController

本次介紹SpringBoot中針對(duì)http的常用注解。SpringBoot之所以在現(xiàn)階段從Spring全家桶中脫穎而出,不僅是其號(hào)稱(chēng)“輕量級(jí)”,在實(shí)際工作中,工程師也會(huì)發(fā)現(xiàn)大量的SpringMVC中配置文件工作,由注解替代。作為優(yōu)質(zhì)的服務(wù)端Java框架,今天著重介紹SpringBoot中與http請(qǐng)求相關(guān)的注解。

SpringBoot仍然秉承MVC的架構(gòu),在注解命名方面遵循此類(lèi)講究,對(duì)于負(fù)責(zé)Restful API交互的功能模塊,SpingBoot采用@RestController在修飾類(lèi)

@RestController

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

  • @Controller 將當(dāng)前修飾的類(lèi)注入SpringBoot IOC容器,使得從該類(lèi)所在的項(xiàng)目跑起來(lái)的過(guò)程中,這個(gè)類(lèi)就被實(shí)例化。當(dāng)然也有語(yǔ)義化的作用,即代表該類(lèi)是充當(dāng)Controller的作用
  • @ResponseBody 它的作用簡(jiǎn)短截說(shuō)就是指該類(lèi)中所有的API接口返回的數(shù)據(jù),甭管你對(duì)應(yīng)的方法返回Map或是其他Object,它會(huì)以Json字符串的形式返回給客戶(hù)端,本人嘗試了一下,如果返回的是String類(lèi)型,則仍然是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


對(duì)于Map的返回為JSON類(lèi)型字符串

對(duì)于String的返回仍為String

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


@Controller修飾后

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容