首页 > 其他分享 >@RestController注解

@RestController注解

时间:2022-11-06 16:01:39浏览次数:95  
标签:RestController JSON ResponseBody Controller 注解 方法

参考声明:https://www.cnblogs.com/melodyjerry/p/14357630.html

参考声明:https://www.cnblogs.com/flower-dance/p/14267042.html

@RestController

  • @RestController注解,相当于@ResponseBody@Controller
  • Spring 4.0引入了@RestController,这是一个控制器的专用版本,它是一个方便的注释。

通过使用@RestController批注对控制器类进行注释,您不再需要将@ResponseBody添加到所有请求映射方法中。@ResponseBody注释默认处于活动状态。

说明它同时拥有这2注解的功能,@Controller注解表示后,该类将会被spring管理,@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型。所以这里我们return map的时候,可以直接输出JSON数据当然@RestController注解属于springmvc的,并不属于springboot的。

为什么要有这个注解?

  为什么在有了@Controller注解的同时,还要有@RestController呢?

  先说一下之前我们是则么做的,在使用@Controller的时候

  我们的Controller中的方法会用于返回页面视图的,当然这是前后端不分离的情况,我们要返回JSON数据,是要在方法上面加上@ResponseBody的

  但是如果接口多了,那么每个方法上都加,就会变得比较冗余,并且现在都是前后端分离的项目,前端有自己的路由,并不需要后端控制,所以一般所有的接口都是通过JSON数据交互的,所以采用RestController

Demo

要在我们的示例中使用@RestController,我们需要做的就是将@Controller修改为@RestController并从每个方法中删除@ResponseBody

结果类似代码应如下所示:

@RestController /* @Controller + @ResponseBody */
@RequestMapping("/account")
public class AccountController {
    
    //注入Service服务对象
    @Autowired
    private AccountService accountService;
 
    //获取account列表
    @GetMapping("/list")
    public ResultVO getAccountLists(@RequestBody(required = false) StandardDTO<AccountDTO> dto) {
        return ResultVO.ok(accountService.getAccountLists(dto));
    }
}

我们不再需要把@ResponseBody添加到请求映射方法中。

  • 更改后,再次在服务器上运行应用程序会产生与以前相同的输出。

小结

使用@RestController非常简单,这是

  • Spring 4.0开始创建MVC RESTful Web服务
  • 或者,基于SpringBoot 2.x首选方法。

标签:RestController,JSON,ResponseBody,Controller,注解,方法
From: https://www.cnblogs.com/javaxubo/p/16862804.html

相关文章

  • @RequestMapping注解(超详细基础知识+实际代码案例)
    1、@RequestMapping注解的功能从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。SpringMVC接收到指定的请求,......
  • kotlin用于注解处理kapt配置
    使用场景:为了使用 @AutoService(xx::class)AndroidStudio版本:AndroidStudioBumbleBee2021.1.1Patch3build.gradle(Project)载入插件:plugins{...id"o......
  • 限流 - 限流注解组件开发
    限流概述系统存在服务上限,流量超过服务上限会导致系统卡死、崩溃。限流:为了在高并发时系统稳定可用,牺牲或延迟部分请求流量以保证系统整体服务可用。限流算法固定窗......
  • SpringBoot实战笔记:02_使用注解与Java配置的Aop示例
    转载:https://blog.csdn.net/android_zyf/article/details/79579875<!--02_新的依赖--><!--导入spring的aop支持--><dependency><groupId>${spring-groupId}</groupId>......
  • 了解一下Spring Boot中@SpringBootApplication 注解
    (SpringBoot中@SpringBootApplication注解)@SpringBootApplication注解SpringBootApplication注解位于spring-boot-autoconfigure工程的org.springframework.boot.auto......
  • Redis Desktop Manager连不上服务器的redis; Java 死锁; 泛型; 事务; servlet; Spring事务;
    RedisDesktopManager连不上服务器的redis1、首先有没有设置密码,输入的密码是否正确2、那个IP是内网IP嘛?外网的要加SSH总结一下无论是连MySQL、MongoDB、还是redisip如果......
  • php注解使用示例
    今天看到php注解的介绍文章很感兴趣,动手实际试了试挺好玩,写这篇文章记录下php从8开始支持原生注解功能了,我们可以写个小的例子看看注解怎么玩。 先确定我们的任务目标......
  • 声明Spring Bean和注入Bean的几种常用注解和区别
    Spring声明Bean的注解: @Component:组件,没有明确的角色。 @Service:在业务逻辑层(Service层)使用。@Repository: 再数据访问层(Dao层)使用。@Controller:再展现层(MVC->Sprin......
  • 自定义注解获取请求Header中的值
    前言这几天开发一个项目,为了方便,前台将当前登陆人的ID和名称放在每个请求的Header中(这里不考虑安全性之类的),这样后台只要需要用到,就直接从Header中get出来就可以了。后台......
  • @Cacheable注解实现Redis缓存
    SpringBoot缓存之@Cacheable介绍简介介绍:Spring从3.1开始就引入了对Cache的支持。定义了org.springframework.cache.Cache和org.springframework.cache.Cach......