IT袋

当前位置:主页 > 对比评测 >

Spring中@Controller和@RestController区别

Spring中@Controller和@RestController区别(2)

时间:2024-01-19 13:41:03 来源:IT袋 作者:马勇
导读:Spring中@Controller和@RestController区别,2. @Controller和前后端分离开发 前后台分离开发,后端单独开的,返回的数据不再是视图(html/JSP等),而是JSON数据 思考:@Controller如何让方法返回JSON数据,从

Spring中@Controller和@RestController区别

Spring中@Controller和@RestController区别

2. @Controller和前后端分离开发

前后台分离开发,后端单独开的,返回的数据不再是视图(html/JSP等),而是JSON数据

思考:@Controller如何让方法返回JSON数据,从而实现前后端开发

实际上很简单就是@Controller+@ResponseBody注解实现方法返回JSON数据

@ResponseBody注解可以在类上,也可以在方法上,在控制器类上表示所有方法返回的都是JSON数据

@GetMapping
@ResponseBody
public String update(){
    return "test";
}

测试: 使用浏览器访问http://localhost:8080/tutorial

结果如下:

Spring中@Controller和@RestController区别

之间返回方法返回值,而不是视图

3. @RestController和前后端分离开发

前后端分离开发流行之后,实际上就是在控制器上添加@Controller+@ResponseBody注解,但是用两个注解好像有点麻烦,Spring官方就推出了一个新的注解用于替代@Controller+@ResponseBody组合,就是@RestController注解

RestController注解代码如下

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
 @AliasFor(annotation = Controller.class)
 String value() default "";
}

Spring中@Controller和@RestController区别

从代码看我们发现RestController注解就是@Controller+@ResponseBody结合

本文分享的Spring中@Controller和@RestController区别的IT小知识讲解,希望为您的生活带来一点小帮助!

相关阅读