【发布时间】:2017-01-12 01:51:21
【问题描述】:
我已经使用 Spring Framework 编写了一些 RESTful Web 服务(通过阅读在线帖子/视频教程等),但是我仍然有一些疑问。
当我们使用 Spring MVC 模块编写Web应用程序时,我们使用控制器代码,类似于以下:
@Controller
public class SimpleController {
@RequestMapping("/welcome")
ModelAndView handleIncomingWelcomeReq() {
ModelAndView mw = new ModelAndView("WelcomePage","welcomeKey","WelcomeKey's value!");
return mw;
}
}
在上面的代码中有这个控制器返回的 ModelAndView 对象,可以像这个 URL 一样调用它:
http://localhost:8080/contextRoot/welcome
现在,如果我们排除“视图”部分并仅返回模型,它会不会像 Web 服务一样运作?
所以我的疑问是,在 Spring 中我们是否使用相同的 API/jar 来创建 Web 应用程序或 RESTful Web 服务?
我读到的是,对于 Spring REST 支持,它有注释 @RestController 注释(它本身就像 @Contoller + @ResponseBody 注释)。
那么在 Spring Framework 中 REST WS 和 web-applications 的实现有什么不同呢?
谁能帮我理解这个?
【问题讨论】:
-
我不确定为什么这个问题被投票关闭。在问这个问题之前,我确实解释了我所做的功课。对于有经验的开发人员来说,这可能是一个幼稚的问题,但对于初学者来说可能是有道理的。如果希望对此问题进行其他编辑,我愿意这样做,但请帮助消除疑虑。最好的问候
-
我会说这个问题太宽泛了。 Rest 是 jax-rs,webservices 是 jax-ws。
-
@Nicholas:感谢您的回复。我的问题是针对 RESTful WS 的 Spring 框架支持。如果使用 Spring 创建 RESTful WS,我会感到困惑,我们是否使用与创建基于 Spring MVC 的 Web 应用程序相同的 API?
-
聊天 Java::chat > 和芯片,如果你想的话。 Rest 只是暴露了一个“REST”端点,前端不是它的一部分。如您所述,MVC 将使用 @Controller 响应浏览器请求。一些客户端框架与 REST 端点接口以获取数据。 MVC 是一个服务器端框架。
-
@Nicholas:感谢您的回复。我阅读了更多文档,所以我相信这只是注释和发回的响应的区别,基础 Spring 支持是相同的(它使用 spring-web、spring-mvcweb 模块。
标签: spring web-services rest spring-mvc spring-rest