电商网站建设需要哪些技术,中国电信六大外包公司,wordpress 个人soho,合肥房产网365Spring MVC中的RestController注释不过是Controller和ResponseBody注释的组合。 它已添加到Spring 4.0中#xff0c;以简化在Spring框架中RESTful Web Services的开发。 如果您熟悉REST Web服务#xff0c;您就会知道Web应用程序与REST API之间的根本区别在于#xff0c;Web… Spring MVC中的RestController注释不过是Controller和ResponseBody注释的组合。 它已添加到Spring 4.0中以简化在Spring框架中RESTful Web Services的开发。 如果您熟悉REST Web服务您就会知道Web应用程序与REST API之间的根本区别在于Web应用程序的响应通常是HTML CSS JavaScript的视图而REST API只是以以下形式返回数据 JSON或XML。 这种差异在Controller和RestController批注中也很明显。 Controller的工作是创建模型对象的Map并找到一个视图但是RestController只是返回对象而对象数据RestController JSON或XML的形式直接写入HTTP响应中。 这也可以使用传统的Controller和ResponseBody批注来完成但是由于这是RESTful Web服务的默认行为因此Spring引入了RestController 它将Controller和ResponseBody的行为结合在一起。 简而言之Spring MVC中的以下两个代码段相同 Controller
ResponseBody
public class MVCController { .. your logic
}RestController
public class RestFulController { .... your logic
} 显然每个人都只想声明一个注解而不是两个。 另外 RestController比前两个更明显。 Spring中的Controller和RestController是什么 在Spring框架中 Controller是一个类它负责准备模型Map其中包含要由视图显示的数据以及选择正确的视图本身。 它也可以使用ResponseBody批注直接写入响应流并完成请求。 直接写入响应流的行为对于响应对RESTful Web服务的调用非常有用因为在这里我们只是返回数据而不是返回我早先有关Spring MVC内部工作方式的解释中所述的视图。 如果您在Spring 4之前例如在Spring 3或Spring 3.1中开发了RESTful Web服务那么通过使用Controller和ResponseBody的组合来创建RESTful响应您将会很熟悉。 Spring人意识到了这个问题并创建了RestController 。 现在您无需使用Controller和RestponseBody批注。 相反您可以使用RestController提供相同的功能。 简而言之它是一种便捷控制器它将Controler和Response主体的行为组合为一个。 如果您更想了解在Spring中开发RESTFul Web Service的高级技术可以进一步将Eugen Paraschiv的REST与Spring Master类一起加入。 Spring中RestController和Controller之间的区别 现在您已经熟悉了这两个注释现在是分析RestController和Controler之间的某些事实差异的好时机。 这是一个非常重要的概念不仅从访谈的角度来看而且从Spring Core和Spring Web应用程序开发人员认证中也是如此。 如果您正在准备Spring认证 则应该熟悉这些细微的差异。 此外您还可以查看免费的Spring考试以了解有关考试格式和问题级别的信息。 无论如何让我们回到重点这是这两个注释之间的一些重要区别。 Controller是一个通用注释用于将类标记为Spring MVC Controller而RestController是RESTFul Web服务中使用的特殊控制器等效于Controller ResponseBody 。 RestController是相对较新的仅在Spring 4.0上添加但是Controller是一个旧的注释自Spring开始支持注释以来就存在并正式在Spring 2.5版本中添加。 Controller批注指示该类是“控制器”例如Web控制器而RestController批注指示该类是一个控制器其中RequestMapping方法默认情况下采用ResponseBody语义即为REST API服务。 Controller是Component注释的特化而RestController是Controller注释的特化。 它实际上是一个使用Controller和ResponseBody注释的便捷控制器如下所示。 Target(valueTYPE)
Retention(valueRUNTIME)
Documented
Controller
ResponseBody
public interface RestController 这是Controller声明的样子 Target(valueTYPE)
Retention(valueRUNTIME)
Documented
Component
public interface Controller Spring MVC中Controler和RestCotroller之间的主要区别之一是一旦将一个类标记为RestController则每个方法都将写入域对象而不是视图。 您可以查看Bryan Hassen的Spring MVC 4简介以了解有关如何在基于Spring的应用程序中使用RestController批注的更多信息。 RestController和Controller之间的另一个关键区别是一旦使用ResponseBody注释了该类 RestController ResponseBody在每个处理程序方法上都使用RestController 如下所示 使用RestControler RestController
public class Book{RequestMapping(value{/book})
public Book getBook(){
//...
return book;
}
} 没有RestController Controller
public class Book{RequestMapping(value{/book})
ResponseBody
public Book getBook(){
//...
return book;
}
} 您可以看到如果使用Spring MVC Controller批注创建RESTful响应 则需要使用ResponseBody批注对每个方法进行批注而在使用RestController时则不需要。 它不仅使您的代码更具可读性而且还为您节省了几个按键。 这是一个使用RestController和SpringBoot框架的简单HelloWorld示例 这就是Spring MVC和REST中Controller和RestController批注之间的区别 。 RestController是同时使用Controller和ResponseBody批注的快捷方式。 Spring在Spring 4中有目的地添加了此批注以使使用Spring框架的RESTful Web服务开发更加容易。 它可以根据请求的MIME类型将响应直接转换为JSON或XML。 因此如果要创建RESTful Web服务最好使用RestController不是将Controller组合到ResponseBody 。 如果您想了解有关使用Spring和Spring Security框架开发RESTful Web服务的更多信息建议您将Eugen Paraschiv的REST与Spring Coaching一起加入。 Eugen在Java中开发和保护RESTful Web服务方面具有一些良好的现实世界经验该课程是从他的丰富经验中受益的好机会。 翻译自: https://www.javacodegeeks.com/2017/08/difference-restcontroller-controller-annotation-spring-mvc-rest.html