Spring Boot 中的MVC支持--@RestController

        Spring Boot的MVC支持主要来最常用的几个注解,包括

  •                 @RestController用于声明控制器
  •                 @RequestMapping 用于实现方法映射地址
  •                 @PathVariable 用于接受路径中的参数
  •                 @RequestParam 用于接受 request 请求中的 参数
  •                 @RequestBody 用于接受 application/json 类型的请求信息

        主要掌握几个注解常用的使用方式和特点。

        1、 @RestController

        @RestController 是 Spring Boot 新增的一个注解,等价于@Controller+@ResponseBody

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

        那么从上述代码中我们可以看出@RestController注解包含了原来的@Controller 和@ResponseBody注解,@ResponseBody 注解是将返回的数据结构转换为 Json 格式。

        所以@RestController可以看作是@Controller和@ResponseBody的结合体,为了编码方便建议使用@RestController 后就不用再使用@Controller 了。

        @Controller 则返回的是逻辑地址名。

        但此时我们需要注意的是:若前后端分离,且不用模板渲染的话,如 Thymeleaf,这种情况下是可以直接使用 @RestController 将数据以 json 格式传给前端,前端拿到之后解析;但若不是前后端分离,且使用模板渲染的话,一般 Controller 中都会返回到具体的页面,那么此时就不能使用@RestController,但其实是需要返回user.html页面的。

public String getUser(){
     return "user";
}

         若使用@RestController的话,会将user作为字符串返回的。

         若使用@Controller注解,则表示返回一个回一个逻辑地址名 user 字符串,需要依赖于 ViewResovler 组件将逻辑地址名称转 换为物理地址。

         在Spring Boot集成Thymeleaf模板引擎中会使用。

spring.mvc.view.prefix=/
spring.mvc.view.suffix=.html

如果使用@Controller,方法的返回值是字符串 user,则前后缀自动生效,将逻辑地址名
user 转换为物理地址名/user.html,静态页面默认存储位置可以考虑使用。
resources/static 目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值