如何设计Spring MVC REST服务?

我希望客户端和服务器应用程序使用REST服务相互通信。 我一直在尝试使用Spring MVC来设计它。 我正在寻找这样的东西:

  1. 客户端执行POSTrest服务调用saveEmployee(employeeDTO, companyDTO)
  2. Server在其控制器saveEmployee(employeeDTO, companyDTO)有类似的POST方法

可以使用Spring MVC完成吗?

是的,这可以做到。 这是一个RESTful Controller的简单示例(使用Spring注释):

 @Controller @RequestMapping("/someresource") public class SomeController { @Autowired SomeService someService; @RequestMapping(value="/{id}", method=RequestMethod.GET) public String getResource(Model model, @PathVariable Integer id) { //get resource via someService and return to view } @RequestMapping(method=RequestMethod.POST) public String saveResource(Model model, SomeResource someREsource) { //store resource via someService and return to view } @RequestMapping(value="/{id}", method=RequestMethod.PUT) public String modifyResource(Model model, @PathVariable Integer id, SomeResource someResource) { //update resource with given identifier and given data via someService and return to view } @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public String deleteResource(Model model, @PathVariable Integer id) { //delete resource with given identifier via someService and return to view } } 

请注意,有多种方法可以处理来自http-request的传入数据(@RequestParam,@ RequestBody,自动映射后参数到bean等)。 对于更长和可能更好的解释和教程,尝试谷歌搜索’rest spring mvc’(没有引号)。

通常客户端(浏览器)-stuff是用JavaScript和AJAX完成的,我是服务器后端程序员,对JavaScript知之甚少,但是有很多库可以帮助它,例如参见jQuery

另请参见: Spring 3 MVC中的REST

是的,使用spring MVC很容易实现Rest。

 @RequestMapping(value="/saveEmploee.do",method = RequestMethod.POST) @ResponseBody public void saveEmployee(@RequestBody Class myclass){ //saving class. //your class should be sent as JSON and will be deserialized by jackson //bean which should be present in your Spring xml. }