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

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

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

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

@Controller和@RestController區(qū)別

在springboot開發(fā)中控制層使用注解@Controller時,加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值對應的是一個視圖,而使用@RestController返回值對應的是json數據,而@Controller+@ResponseBody的作用相當于@RestController。

@Controller的應用

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

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

然后在控制層CustomerController類的代碼為

@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";
    }
}

啟動程序后在瀏覽器輸入localhost:8080/list訪問頁面即為templates文件夾下的list.html

這里寫圖片描述

@RestController的應用

控制層CustomerController類的代碼為

@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;
    }
}

啟動程序后在瀏覽器輸入localhost:8080/list訪問效果如下

這里寫圖片描述

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

這兩個的區(qū)別其實是個很簡單的問題,但是對于初學者可能遇到了會掉坑里。

@RestController注解相當于@ResponseBody + @Controller合在一起的作用。

1.如果注解Controller使用@RestController

則Controller中的方法無法返回jsp頁面,或者html,配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內容就是Return 里的內容。

代碼如圖:

結果如圖:

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

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

代碼如圖:

結果如圖:

如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody注解。

代碼如圖:

結果如圖:

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 寫了兩年代碼之后再來談一談Spring中的Bean

    寫了兩年代碼之后再來談一談Spring中的Bean

    這篇文章主要介紹了寫了兩年代碼之后再來看看Spring中的Bean,這里列出四種常用的添加Bean的方式,介紹最基本的@Bean注解,@Bean注解聲明這個類是一個Bean,需要的朋友可以參考下
    2021-10-10
  • Java和C語言分別實現(xiàn)水仙花數及拓展代碼

    Java和C語言分別實現(xiàn)水仙花數及拓展代碼

    這篇文章主要介紹了分別用Java和C語言實現(xiàn)水仙花數,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • Java中的包(package)是什么和使用方法

    Java中的包(package)是什么和使用方法

    包是Java中一種強大的組織代碼的工具,它們幫助開發(fā)者將代碼分組,防止命名沖突,并通過控制訪問級別來增強代碼的安全性,這篇文章主要介紹了Java中的包(package)是什么和如何使用它們,需要的朋友可以參考下
    2024-07-07
  • 基于springboot i18n國際化后臺多種語言設置的方式

    基于springboot i18n國際化后臺多種語言設置的方式

    這篇文章主要介紹了基于springboot i18n國際化后臺多種語言設置的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 為什么Java單例模式一定要加?volatile

    為什么Java單例模式一定要加?volatile

    這篇文章主要介紹了為什么Java單例一定要加volatile,指的是為什么懶漢模式中的私有變量要加volatile?帶著疑問一起學習下面文章內容吧
    2022-05-05
  • Java實例講解動態(tài)代理

    Java實例講解動態(tài)代理

    動態(tài)代理指的是,代理類和目標類的關系在程序運行的時候確定的,客戶通過代理類來調用目標對象的方法,是在程序運行時根據需要動態(tài)的創(chuàng)建目標類的代理對象。本文將通過案例詳細講解一下動態(tài)代理,需要的可以參考一下
    2022-06-06
  • 基于SpringBoot后端導出Excel文件的操作方法

    基于SpringBoot后端導出Excel文件的操作方法

    這篇文章給大家介紹了基于SpringBoot后端導出Excel文件的操作方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    最近正在閱讀Java ReentrantLock源碼,始終對可重入和不可重入概念理解不透徹,今天特地整理了本篇文章,讓你徹底了解Java可重入鎖和不可重入鎖,需要的朋友可以參考下
    2021-06-06
  • Java中雙冒號(::)運算操作符用法詳解

    Java中雙冒號(::)運算操作符用法詳解

    這篇文章主要給大家介紹了關于Java中雙冒號(::)運算操作符用法的相關資料,雙冒號運算操作符是類方法的句柄,lambda表達式的一種簡寫,這種簡寫的學名叫eta-conversion或者叫η-conversion,需要的朋友可以參考下
    2023-11-11
  • Spring裝配Bean教程之XML安裝配置bean詳解

    Spring裝配Bean教程之XML安裝配置bean詳解

    大家都知道spring有多重配置方式,基于XML,基于注解,基于java類的配置,其中基于XML是最強大的一種,下面這篇文章主要給大家介紹了關于Spring裝配Bean之XML安裝配置bean的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10

最新評論