【问题标题】:Spring Mvc Web Application with Rest interface带有 Rest 接口的 Spring Mvc Web 应用程序
【发布时间】:2013-04-17 19:10:17
【问题描述】:

在我的练习中,我必须开发一个可以通过 WebGUI 和 REST 服务访问的 spring 应用程序。 现在我浏览了 Spring MVC 的示例,有 this hello world 的 Spring MVC 教程。

控制器如下所示:

 @Controller
 @RequestMapping("/welcome")
 public class HelloController {

    @RequestMapping(method = RequestMethod.GET)
    public String printWelcome(ModelMap model) {
        model.addAttribute("message", "Spring 3 MVC Hello World");
    return "hello";
    }
}

然后我查看了Spring REST example,看起来像这样:

@Controller
@RequestMapping("/movie")
public class MovieController {

@RequestMapping(value = "/{name}", method = RequestMethod.GET)
public String getMovie(@PathVariable String name, ModelMap model) {

    model.addAttribute("movie", name);
    return "list";

}

@RequestMapping(value = "/", method = RequestMethod.GET)
public String getDefaultMovie(ModelMap model) {

    model.addAttribute("movie", "this is default movie");
    return "list";

}

}

现在我想知道,这两个示例(Spring-mvc 和 Spring-rest)有何不同? 它们都使用相同的注释并且工作相似。这两个不都只是 REST 示例吗?

如何为 Spring-MVC 应用程序提供 Rest-Interface?

问候

【问题讨论】:

标签: java spring rest web-applications spring-mvc


【解决方案1】:

为了给 Spring MVC 应用程序提供 rest 接口,您可以将带有路径名的 @RequestMapping 注解应用到控制器中的每个方法,这将为您想要提供的每个 rest 服务创建一个唯一的 URL 路径。

意思是,其余的服务只不过是Spring MVC控制器中带有@RequestMapping注解的方法。

如果您想了解 Spring MVC 如何支持基于 Rest 的服务,以下链接可能会有所帮助:

http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/#features

【讨论】:

    【解决方案2】:

    两个示例都是关于 Spring Web MVC。

    你应该更多地关注定义,比如什么是 REST

    https://en.wikipedia.org/wiki/Representational_state_transfer

    具象状态转移旨在唤起一个图像 精心设计的 Web 应用程序的行为:呈现一个由 Web 组成的网络 页面(虚拟状态机),用户通过一个 应用程序通过选择链接(状态转换),导致 下一页(代表应用程序的下一个状态)是 转移给用户并呈现给他们使用。

    Spring Web MVC 极大地促进了 REST Web API 的开发,仅此而已。

    【讨论】:

      【解决方案3】:

      请记住 @ResponseBody 作为方法的返回类型将是 REST。 当然返回的对象可以使用 JSON 或 XML 协商。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-18
        • 2015-05-12
        相关资源
        最近更新 更多