最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中Controller和RestController的區(qū)別詳解

 更新時間:2023年09月21日 11:26:42   作者:基礎(chǔ)較差的cs菜鳥  
這篇文章主要介紹了Spring中Controller和RestController的區(qū)別詳解,@Controller是標識一個Spring類是Spring MVC controller處理器,@Controller類中的方法可以直接通過返回String跳轉(zhuǎn)到j(luò)sp、ftl、html等模版頁面,需要的朋友可以參考下

Controller和RestController的區(qū)別

1. Controller, RestController的共同點

都是用來表示Spring某個類的是否可以接收HTTP請求。

2. Controller, RestController的不同點

@Controller:標識一個Spring類是Spring MVC controller處理器。@Controller類中的方法可以直接通過返回String跳轉(zhuǎn)到j(luò)sp、ftl、html等模版頁面。在方法上加@ResponseBody注解,也可以返回實體對象。

@Controller注解源碼:

package org.springframework.stereotype;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Component;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller {
    String value() default "";
}

@RestController:@RestController是@Controller和 @ResponseBody 的結(jié)合體,兩個標注合并起來的作用。@RestController類中的所有方法只能返回String、Object、Json等實體對象,不能跳轉(zhuǎn)到模版頁面。

@RestController注解源碼:

package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}

@RestController中的方法如果想跳轉(zhuǎn)頁面,則用ModelAndView進行封裝,如下:

@RestController
public class UserController {
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public String toIndex(){
        ModelAndView mv = new ModelAndView("index");
      	return mv;    
    }
}

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

  1. 如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁面,或者html,配置的視圖解析器 InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容。
  2. 如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁面,則需要在對應(yīng)的方法上加上@ResponseBody注解。

Controller, RestController示例如下:

@Controller  
@ResponseBody  
public class MyController { }  
 等價于
@RestController  
public class MyRestController { }  

到此這篇關(guān)于Spring中Controller和RestController的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Controller和RestController的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java代碼發(fā)送post請求實現(xiàn)方式

    Java代碼發(fā)送post請求實現(xiàn)方式

    本文介紹了使用Java發(fā)送POST請求的方法,包括引用工具類、設(shè)置訪問地址、請求頭和json請求體,最后使用工具類發(fā)送請求并返回結(jié)果
    2026-05-05
  • 如何使用RabbitMQ實現(xiàn)異步秒殺

    如何使用RabbitMQ實現(xiàn)異步秒殺

    這篇文章主要介紹了如何使用RabbitMQ實現(xiàn)異步秒殺,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04
  • Java布隆過濾器的應(yīng)用實例

    Java布隆過濾器的應(yīng)用實例

    這篇文章主要介紹了Java布隆過濾器的應(yīng)用實例,在程序的世界中,布隆過濾器是程序員的一把利器,利用它可以快速地解決項目中一些比較棘手的問題,如網(wǎng)頁?URL?去重、垃圾郵件識別、大集合中重復(fù)元素的判斷和緩存穿透等問題,需要的朋友可以參考下
    2023-11-11
  • Spring中ThreadLocal的解析

    Spring中ThreadLocal的解析

    這篇文章主要介紹了Spring中ThreadLocal的解析,Spring通過各種DAO模板類降低了開發(fā)者使用各種數(shù)據(jù)持久技術(shù)的難度。這些模板類都是線程安全的,也就是說,多個DAO可以復(fù)用同一個模板實例而不會發(fā)生沖突,下面一起進入文章學子詳細內(nèi)容吧
    2022-01-01
  • Jrebel啟動失敗解決方案詳解

    Jrebel啟動失敗解決方案詳解

    這篇文章主要介紹了Jrebel啟動失敗解決方案詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java7到Java17之Switch語句進化史示例詳解

    Java7到Java17之Switch語句進化史示例詳解

    這篇文章主要為大家介紹了Java7到Java17之Switch語句進化史示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • java -jar設(shè)置添加啟動參數(shù)實現(xiàn)方法

    java -jar設(shè)置添加啟動參數(shù)實現(xiàn)方法

    這篇文章主要介紹了java -jar設(shè)置添加啟動參數(shù)實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Spring開發(fā)中自定義注解的使用詳解

    Spring開發(fā)中自定義注解的使用詳解

    這篇文章主要介紹了Spring開發(fā)中自定義注解的使用詳解,在Java項目中,可以自定義注解,方便進行某些處理操作,提供開發(fā)效率,需要的朋友可以參考下
    2024-01-01
  • Mybatis-Plus的SQL語句組拼原理說明

    Mybatis-Plus的SQL語句組拼原理說明

    這篇文章主要介紹了Mybatis-Plus的SQL語句組拼原理說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動scheduleUpdate定時任務(wù)的流程分析

    Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動scheduleUpdate定時任務(wù)的流程分析

    這篇文章主要介紹了Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動scheduleUpdate定時任務(wù),本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02

最新評論

雅江县| 邢台县| 得荣县| 湘西| 西和县| 万年县| 团风县| 德兴市| 凤台县| 咸阳市| 那坡县| 平定县| 防城港市| 昆山市| 北京市| 舒兰市| 什邡市| 娄底市| 彭泽县| 南京市| 招远市| 连山| 礼泉县| 南丰县| 白水县| 申扎县| 湘乡市| 嘉祥县| 东乡县| 许昌县| 乐山市| 即墨市| 岳池县| 平和县| 封开县| 望谟县| 正蓝旗| 大邑县| 城固县| 平度市| 吉首市|