欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot @Controller和@RestController的區(qū)別及應(yīng)用詳解

 更新時(shí)間:2021年11月03日 17:07:06   作者:冰霜秋月  
這篇文章主要介紹了springboot @Controller和@RestController的區(qū)別及應(yīng)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Controller和@RestController的區(qū)別及應(yīng)用

@Controller和@RestController區(qū)別

在springboot開(kāi)發(fā)中控制層使用注解@Controller時(shí),加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值對(duì)應(yīng)的是一個(gè)視圖,而使用@RestController返回值對(duì)應(yīng)的是json數(shù)據(jù),而@Controller+@ResponseBody的作用相當(dāng)于@RestController。

@Controller的應(yīng)用

先在application.properties配置文件中配置

spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html

然后在控制層CustomerController類(lèi)的代碼為

@Controller
public class CustomerController {
    @Resource
    CustomerServiceI customerServiceI;
    @GetMapping("/")
    public String index() {
        return "redirect:/list";
    }
    @GetMapping("/list")
    public String list(Model model) {
        List<Customer> users = customerServiceI.getUserList();
        model.addAttribute("users",users);
        return "list";
    }
}

啟動(dòng)程序后在瀏覽器輸入localhost:8080/list訪(fǎng)問(wèn)頁(yè)面即為templates文件夾下的list.html

這里寫(xiě)圖片描述

@RestController的應(yīng)用

控制層CustomerController類(lèi)的代碼為

@RestController
public class CustomerController {
    @Resource
    CustomerServiceI customerServiceI;
    @GetMapping("/")
    public String index() {
        return "redirect:/list";
    }
    @GetMapping("/list")
    public List<Customer> list(Model model) {
        List<Customer> users = customerServiceI.getUserList();
        model.addAttribute("users",users);
        return users;
    }
}

啟動(dòng)程序后在瀏覽器輸入localhost:8080/list訪(fǎng)問(wèn)效果如下

這里寫(xiě)圖片描述

@Controller和@RestController區(qū)別的小坑

這兩個(gè)的區(qū)別其實(shí)是個(gè)很簡(jiǎn)單的問(wèn)題,但是對(duì)于初學(xué)者可能遇到了會(huì)掉坑里。

@RestController注解相當(dāng)于@ResponseBody + @Controller合在一起的作用。

1.如果注解Controller使用@RestController

則Controller中的方法無(wú)法返回jsp頁(yè)面,或者h(yuǎn)tml,配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容。

代碼如圖:

結(jié)果如圖:

2.如果需要返回到指定頁(yè)面(jsp/html)

則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。

代碼如圖:

結(jié)果如圖:

如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁(yè)面,則需要在對(duì)應(yīng)的方法上加上@ResponseBody注解。

代碼如圖:

結(jié)果如圖:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot后端接口的實(shí)現(xiàn)(看這一篇就夠了)

    SpringBoot后端接口的實(shí)現(xiàn)(看這一篇就夠了)

    這篇文章主要介紹了SpringBoot后端接口的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Sharding-jdbc報(bào)錯(cuò):Missing the data source name:‘m0‘解決方案

    Sharding-jdbc報(bào)錯(cuò):Missing the data source 

    在使用MyBatis-plus進(jìn)行數(shù)據(jù)操作時(shí),新增Order實(shí)體屬性后,出現(xiàn)了數(shù)據(jù)源缺失的提示錯(cuò)誤,原因是因?yàn)閡serId屬性值使用了隨機(jī)函數(shù)生成的Long值,這與sharding-jdbc的路由規(guī)則計(jì)算不匹配,導(dǎo)致無(wú)法找到正確的數(shù)據(jù)源,通過(guò)調(diào)整userId生成邏輯
    2024-11-11
  • kotlin和Java的相互調(diào)用示例詳解

    kotlin和Java的相互調(diào)用示例詳解

    Kotlin 的設(shè)計(jì)過(guò)程中就考慮到了與 Java 的互操作性。在 Kotlin 中可以直接調(diào)用既有的 Java 代碼, 反過(guò)來(lái)在 Java 中也可以很流暢地使用 Kotlin 代碼,下面這篇文章主要給大家介紹了關(guān)于kotlin和Java的相互調(diào)用的相關(guān)資料,需要的朋友可以參考下。
    2018-02-02
  • java由JABXContext注解讀取xml配置文件方式

    java由JABXContext注解讀取xml配置文件方式

    這篇文章主要介紹了java由JABXContext注解讀取xml配置文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解MyBatis工作原理

    詳解MyBatis工作原理

    近來(lái)想寫(xiě)一個(gè)mybatis的分頁(yè)插件,但是在寫(xiě)插件之前肯定要了解一下mybatis具體的工作原理吧,本文就詳細(xì)總結(jié)了MyBatis工作原理,,需要的朋友可以參考下
    2021-05-05
  • C++/java 繼承類(lèi)的多態(tài)詳解及實(shí)例代碼

    C++/java 繼承類(lèi)的多態(tài)詳解及實(shí)例代碼

    這篇文章主要介紹了C++/java 繼承類(lèi)的多態(tài)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解

    Java實(shí)現(xiàn)直接插入排序與折半插入排序的示例詳解

    這篇文章主要為大家詳細(xì)介紹了插入排序中兩個(gè)常見(jiàn)的排序:直接插入排序與折半插入排序。本文用Java語(yǔ)言實(shí)現(xiàn)了這兩個(gè)排序算法,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • java、freemarker保留兩位小數(shù)

    java、freemarker保留兩位小數(shù)

    這篇文章主要介紹了 java、freemarker保留兩位小數(shù)的實(shí)現(xiàn)方法,然后給大家補(bǔ)充介紹了freemarker保留兩位小數(shù)的詳解,需要的朋友可以參考下
    2017-03-03
  • Java關(guān)于數(shù)組的介紹與使用

    Java關(guān)于數(shù)組的介紹與使用

    數(shù)組(Array)是有序的元素序列。 若將有限個(gè)類(lèi)型相同的變量的集合命名,那么這個(gè)名稱(chēng)為數(shù)組名。組成數(shù)組的各個(gè)變量稱(chēng)為數(shù)組的分量,也稱(chēng)為數(shù)組的元素,有時(shí)也稱(chēng)為下標(biāo)變量
    2021-09-09
  • eclipse下整合springboot和mybatis的方法步驟

    eclipse下整合springboot和mybatis的方法步驟

    這篇文章主要介紹了eclipse下整合springboot和mybatis的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03

最新評(píng)論