1. 程式人生 > >jersey 學習資料(初學時記的筆記)

jersey 學習資料(初學時記的筆記)

jersey是一種 restful框架,使用它為我們提供介面。有三塊重要的東西,jersey-server,jersey-core, 整合(與spring等等)。

相關解釋:

資源類(Resource Class):注意,資源類是一個簡單的 Java 物件 (POJO),可以實現任何介面。這增加了許多好處,比如可重用性和簡單。

註釋(Annotation):在 javax.ws.rs.* 中定義,是 JAX-RS (JSR 311) 規範的一部分。

Jersey 是Sun對JSR311的官方參考實現,而JSR311是java中實現Restful Web Service的API規範(JSR311: JAX-RS: The Java API for RESTful Web Services)。JSR311有一個重要目標:使用註解(annotation)把POJO暴露成Web Service,這樣就比較輕量級。

@Path:定義資源基 URI。由上下文根和主機名組成,資源識別符號類似於 http://localhost:8080/Jersey/rest/hello
@GET:這意味著以下方法可以響應 HTTP GET 方法。
@Produces:以純文字方式定義響應內容 MIME 型別。

JAX-RS提供了一些標註將一個資源類,一個 POJO 的 Java 類,封裝為Web資源。標註包括:
@Path,標註資源類或方法的相對路徑;
@GET,@PUT,@POST,@DELETE,標註方法是用的HTTP請求的型別;

@Produces,標註返回的MIME媒體型別;
@Consumes,標註可接受請求的MIME媒體型別;

@PathParam,@QueryParam,@HeaderParam,CookieParam,@MatrixParam,@FormParam,分別標註方法的引數來自於HTTP請求的不同位置,例如@PathParam來自於URL的路徑,@QueryParam來自於URL的查詢引數,@HeaderParam來自於HTTP請求的頭資訊,@CookieParam來自於HTTP請求的Cookie。

JAX-RS:Java API for RESTful Web Services 是一個 Java 程式語言的應用程式介面,支援按照 表象化狀態轉變 (REST)架構風格建立 Web 服務Web服務[1]。 JAX-RS使用了 Java SE 5 引入的 Java 標註來簡化 Web 服務客戶端和服務端的開發和部署。

這篇文章介紹了常見的兩種 Web Service 的處理方式為有兩種:
(1)基於WSDL/SOAP的方式
比較正統的,客戶端呼叫必須先取得WSDL檔案,然後生成呼叫的 API 才可以使用。(筆者注:這個以前我做過,還挺麻煩的。記得還要用一些工具生成呼叫的程式碼。)
(2)Rest方式
Rest 風格 Web 服務的好處就是簡化了客戶端的呼叫,不再像 WSDL 那般麻煩。從而減低第三方開發者的學習成本,減短了學習曲線。有利於服務推廣與普及,吸引更多使用者數量從而帶來潛在的商業利益。

在軟體即服務(SaaS - Software As A Service)與軟體即平臺(PasS-Platform As A Service)中有著重要的地位與應用。這正是那些網際網路巨頭對 Rest 風格感興趣的原因之一。

REST的優點(不是很好理解,但是先記錄一下)
1、可以利用快取Cache來提高響應速度
2、通訊本身的無狀態性可以讓不同的伺服器的處理一系列請求中的不同請求,提高伺服器的擴充套件性
3、瀏覽器即可作為客戶端,簡化軟體需求
4、相對於其他疊加在HTTP協議之上的機制,REST的軟體依賴性更小
5、不需要額外的資源發現機制
6、在軟體技術演進中的長期的相容性更好

DNS 有狀態,http 是無狀態協議。