日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Controller和RestController的区别

發(fā)布時(shí)間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Controller和RestController的区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. Controller, RestController的共同點(diǎn)

???? 都是用來表示Spring某個(gè)類的是否可以接收HTTP請(qǐng)求

?

2.? Controller, RestController的不同點(diǎn)

???? @Controller:  標(biāo)識(shí)一個(gè)Spring類是Spring MVC controller處理器

???? @RestController:?   @RestController是@Controller和@ResponseBody的結(jié)合體,兩個(gè)標(biāo)注合并起來的作用。

?

  @Controller類中的方法可以直接通過返回String跳轉(zhuǎn)到j(luò)sp、ftl、html等模版頁面。在方法上加@ResponseBody注解,也可以返回實(shí)體對(duì)象

  @RestController類中的所有方法只能返回String、Object、Json等實(shí)體對(duì)象,不能跳轉(zhuǎn)到模版頁面。

?

?

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

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

?

?

示例如下:

@Controller @ResponseBody public class MyController { }

@RestController
public class MyRestController { }

?

?

@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注解源碼:

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

?

總結(jié)

以上是生活随笔為你收集整理的Controller和RestController的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。