![](/img/trans.png)
[英]Java v/s PHP, how do this technology stack up for Web Application Development?
[英]What is a good technology stack for a java web based application with REST support?
晚上全部:)
我正在尋找創建Java Web應用程序。 我設想它將使用Spring Web MVC和JSP,但是我想將某些功能公開為REST調用,因此我可以創建一個Android客戶端。
春天有什么能幫助我在這個地區嗎? 如何將REST代碼和Web前端代碼分開,而不必維護我的應用程序的基本上2個版本(一個用於Web,一個用於REST客戶端)。
不是尋找勺子喂食,只是我應該開始閱讀的一些指示。
正如其他人所提到的,Spring現在擁有相當不錯的內置REST支持。 與注釋結合使用時,可以非常簡單地設置RESTful API。 可以使用不同的視圖解析器配置Spring,例如,可以根據Accept
標頭自動響應不同的數據視圖。 因此,您可以從相同的數據中自動返回JSON或JSP,請參閱ContentNegotiatingViewResolver 。 您的控制器和模型可以是常見的並實現一次,將工作留在View層中。
我之前使用過這種方法,當請求是通過AJAX返回JSON時,在瀏覽器訪問時使用相同數據構建的JSP視圖。
澤西島是一個非常漂亮的工具。 它與Spring,Guice和Jackson等工具很好地集成,為您提供了一種創建RESTful資源的無縫方式。
Jersey非常簡單,效果很好,並且可以作為引導的參考實現。 此外,它有一些很好的REST客戶端支持,其中很多可能會成為JAX-RS規范。
在與Spring MVC結合使用方面,我建議您確保為應用程序建模,以便擁有提供所需核心功能的外觀(服務類),然后根據需要在MVC代碼或REST中引用它們碼。 您不應該重復業務邏輯
你可以使用Spring 3.0來做到這一點。 Spring 3.0能夠指定@PathVariable
s來從URL路徑中提取值(以前在Spring MVC中這並不容易)。
您還可以使用@RequestMapping
指定控制器中每個方法應響應的HTTP方法。
我還使用Spring Security來實現API密鑰類型的功能。 這樣,您可以以易於REST客戶端實現的方式限制對API的訪問。 我不得不擴展org.springframework.web.filter.GenericFilterBean並添加一個正確的身份驗證,像這樣
SecurityContextHolder.getContext().setAuthentication(apiKeyAuth)
Spring 3.0 MVC中有一個新的REST API:
http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/
Apache CXF與Spring集成良好,並提供了許多公開服務的方法。 從CXF主頁的概述部分:
CXF使用前端編程API(如JAX-WS和JAX-RS)幫助您構建和開發服務。 這些服務可以使用各種協議,例如SOAP,XML / HTTP,RESTful HTTP或CORBA,並可以在各種傳輸上工作,例如HTTP,JMS或JBI。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.