`

理解Spring4.0新特性@RestController注解

 
阅读更多

前两天学习微框架spring Boot时候在定义Controller类的时候习惯性的使用了@Controller此时发现无论怎么访问都访问不了,此时将@Controller改为@RestController便一切正常了。当时为了搞懂这两个注解查询了相关的资料,现在记录一下。

@RestController注解是它继承自@Controller注解。4.0之前的版本,spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。 
使用这个特性,我们可以开发REST服务的时候不需要使用@Controller而专门的@RestController。

当你实现一个RESTful web services的时候,response将一直通过response body发送。为了简化开发,Spring 4.0提供了一个专门版本的controller。下面我们来看看@RestController实现的定义:

@Target(value=TYPE)  
 @Retention(value=RUNTIME)  
 @Documented  
 @Controller  
 @ResponseBody  
public @interface RestController 

 

Spring的官方文档解释如下:

 

A convenience annotation that is itself annotated with @Controller and @ResponseBody. Types that carry this annotation are treated as controllers where @RequestMapping methods assume @ResponseBody semantics by default. 注解本身使用@Controller和@ResponseBody注解。使用了这个注解的类会被看作一个controller-使用@RequestMapping的方法有一个默认的@ResponseBody注解。 @ResponseBody – As of version 4.0 this annotation can also be added on the type level in which case is inherited and does not need to be added on the method level. @ResponseBody也可以加到类一级,通过继承方法一级不需要添加。

 

为了更加了解@RestController注解先了解一下@ResponseBody注解: 
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 
使用时机: 
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

当我们在Controller上标注了@RestController,这样相当于Controller的所有方法都标注了@ResponseBody

分享到:
评论

相关推荐

    SpringBoot http请求注解@RestController原理解析

    主要介绍了SpringBoot http请求注解@RestController原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring @RestController注解组合实现方法解析

    主要介绍了Spring @RestController注解组合实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    spring4.0 RestController.docx

    spring4.0重要的一个新的改进是@RestController注解,它继承自@Controller注解。4.0之前的版本,Spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。 使用这个特性,我们可以开发REST服务的时候不...

    spring4.0+spring MVC4.0+hibernate4.3全注解

    spring4.0+spring MVC4.0+hibernate4.3框架整合测试案例,支持事务,全注解,配置清晰,基础BaseDao接口实现都已写好,MVC分层,含所有需要的jar包,数据库文件。

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    本文将详细探讨Spring Boot中@Scheduled注解的使用,包括其原理、实现流程、步骤和代码示例。通过本文,读者将能够了解如何在Spring Boot应用中轻松创建和管理定时任务。 # @Scheduled注解简介 在Spring框架中,@...

    如何在Spring Boot中使用@Before注解

    在Spring Boot中,我们可以使用@Before注解来实现AOP的Before通知类型。@Before通知表示在目标方法执行之前,将会先执行切面逻辑。这是一种常用的AOP通知类型,常用于日志记录、安全性检查等方面。 下面详细解释...

    如何使用Spring Boot的@Pointcut注解

    为了帮助读者更好地理解@Pointcut注解的实际应用,我们提供了一个完整的Spring Boot示例代码,展示了如何创建一个切面类并在其中使用@Pointcut注解。通过该示例,我们记录了服务类中方法的执行时间,并在运行时得到...

    Spring 4.0新功能:@Conditional注解详细介绍

    Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足...下面这篇文章主要给大家介绍了关于Spring4.0中新功能:@Conditional注解的相关资料,需要的朋友可以参考下。

    spring4.0框架demo

    利用maven构建的spring4.0框架的demo

    spring4.0完整jar包

    spring4.0完整jar包 包含spring4.0 所有的jar包文件 打包下载

    Spring注解 - 52注解 - 原稿笔记

    在火狐中显示可能会有问题,大家都是... @RequestMapping , @RequestParam , @Resource , @ResponseBody , @RestController , @Scope , @Service , @Validated , @Value , @WebFilter , @WebInitParam , @WebListener

    spring4.0框架所需的jar包

    spring4.0框架所需的jar包,没有包含maven,没有其他框架用的jar包,仅仅是spring框架,每一个都是自己下载的,搭建成功。

    Spring4.0-API

    Spring4.0-API CHM格式,很难得的,希望能帮到大家!

    Spring4.0+Hibernate4.0+Struts2.3整合案例

    Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    Spring4.0 jar包

    spring-framework也就是Spring4.0官方jar包,Spring框架,由Rod Johnson开发,是一个非常强大的反转控制(IOC)框架,以帮助分离项目组件之间的依赖关系

    Spring Boot技术知识点:如何理解@ConfigurationProperties注解

    Spring Boot技术知识点:如何理解@ConfigurationProperties注解

    spring4.0详细教程

    spring4.0详细教程,简单明了,一看即懂 ,适合初学者

Global site tag (gtag.js) - Google Analytics