2012-04-17 88 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