2012-04-17 84 views
4

我有一个Spring MVC的控制器,它返回一个POJO:面向服务架构弹簧MVC

@RequestMapping(value = "/person", method = RequestMethod.POST,headers="Accept=application/xml, application/json") 
public @ResponseBody Person addPerson(@RequestBody Person person) { 
    return personService.add(person); 
} 

该控制器位于WAR文件,服务器A上

我有一个春天的应用程序,战争文件b,可能会在不同的服务器或同一台服务器上运行。什么是访问addPerson方法的最佳方式?通过http请求或将类文件(和dependsicies)打包为jar文件并包含在war文件b中?还是我得到了棒的错误结局,应该做点别的?

回答

3

没有“最好的办法”,这一切都取决于具体情况。战争依赖于很多外部依赖或数据库吗?如果是这样,将它纳入战争B可能是不利的(实际上复制了所有外部依赖关系的负载),并且Web服务方法可能会更好。如果A是一个非常简单的应用程序,那么Web服务集成的额外复杂性可能会过大。也许他们应该完全合并?一般来说,你应该问问你自己(或者谁写了A和B)为什么他们被分成两个不同的应用程序。这可能有一个原因,如果它是一个引人注目的,你应该保持分离,并寻求网络服务电话。

+0

是否有一个从spring-mvc控制器中调用/使用web服务的示例?举例来说,我的addPerson方法必须调用“getAddress(id)”或“/ Address/13”? – NimChimpsky 2012-04-17 10:16:51

+0

有很多例子。 http://forum.springsource.org/showthread.php?82146-Spring-RESTful-Client-Server-tutorial是一个REST教程(使用Springs web/client模块的RestTemplate)。它基于XML,但可以轻松修改以使用JSON(使用MappingJacksonHttpMessageConverter,请参阅http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/remoting.html#rest-客户端访问)。 – pap 2012-04-17 11:12:41