Jersey注解详解
REST?在?2000?年由?Roy Fielding?在博士論文中提出,他是?HTTP?規(guī)范?1.0?和?1.1?版的首席作者之一。
REST?中最重要的概念是資源(resources),使用全球?ID(通常使用?URI)標(biāo)識。客戶端應(yīng)用程序使用?HTTP?方法(GET/ POST/ PUT/ DELETE)操作資源或資源集。RESTful Web?服務(wù)是使用?HTTP?和?REST?原理實現(xiàn)的Web?服務(wù)。通常,RESTful Web?服務(wù)應(yīng)該定義以下方面:
- Web?服務(wù)的基/根?URI,比如?http://host/<appcontext>/resources。
- 支持?MIME?類型的響應(yīng)數(shù)據(jù),包括?JSON/XML/ATOM?等等。
- 服務(wù)支持的操作集合(例如?POST、GET、PUT?或?DELETE)。
?
Jersey的四種行為
方法
HTTP 方法映射到資源的 CRUD(創(chuàng)建、讀取、更新和刪除) 操作。盡管您可以做一些小修改,比如讓?PUT?方法變成創(chuàng)建或更新,但基本的模式如下:
- HTTP?GET:獲取/列出/檢索單個資源或資源集合。
- HTTP?POST:新建資源。
- HTTP?PUT:更新現(xiàn)有資源或資源集合。
- HTTP?DELETE:刪除資源或資源集合。
| 方法/資源 | 資源集合; URI?如: | 成員資源; URI?如: | 對應(yīng)的操作 |
| POST | 列出資源集合的所有成員。 | 檢索標(biāo)識為?1234?的資源的表示形式。 | C(創(chuàng)建) |
| GET | 使用一個集合更新(替換)另一個集合。 | 更新標(biāo)記為?1234?的數(shù)字資源。 | R(讀取) |
| PUT | 在集合中創(chuàng)建數(shù)字資源,其ID?是自動分配的。 | 在下面創(chuàng)建一個子資源。 | U(更新) |
| DELETE | 刪除整個資源集合。 | 刪除標(biāo)記為?1234?的數(shù)字資源。 | D(刪除) |
?
相關(guān)的架包結(jié)構(gòu)
·??????核心服務(wù)器:jersey-core.jar,jersey-server.jar,jsr311-api.jar,asm.jar
·??????核心客戶端:(用于測試)jersey-client.jar
·??????JAXB?支持:(在高級樣例中使用)jaxb-impl.jar,jaxb-api.jar,activation.jar,stax-api.jar,wstx-asl.jar
·??????JSON?支持:(在高級樣例中使用)jersey-json.jar
·??????Spring支持:(在高級樣例中使用)jersey-spirng.jar
元注解信息說明
生存周期說明
1.???????默認(rèn)不使用注解,表示生存周期等于request,請求過后自動銷毀,默認(rèn)是線程安全的。
2.???????application,使用@Singleton注解。生存周期等于整個應(yīng)用程序的生存周期。
3.???????session,使用@PerSession注解。生存周期等于一個session請求,session銷毀,該rest資源實例也同時銷毀。
Bean注解說明
1.@Path
路徑信息,表示映射出去的訪問路徑。
范例如下:@Path("/myResource")
2.?@Produces
用于限制post和get方法返回的參數(shù)類型,支持json、string、xml、html
范例如下:@Produces({"application/xml", "application/json"})
3. @Consumes
用于限制輸入的參數(shù)的類型,支持json、string、xml、html
范例如下:@Consumes("text/plain")
4.?@QueryParam
通過request傳入的參數(shù),可以轉(zhuǎn)換任何有以String為參數(shù)的構(gòu)造函數(shù)的類。
5.@DefaultValue@DefaultValue表示默認(rèn)參數(shù)。
范例如下:@DefaultValue("2") @QueryParam("step")????????int step,
5. @PathParam?
@ MatrixParam,@ HeaderParam,@ CookieParam和@ QueryParam FormParam聽從以相同的規(guī)則。?
@ MatrixParam提取URL路徑段的信息。?@ HeaderParam提取的HTTP頭信息。?@ CookieParam提取信息的Cookie餅干宣布相關(guān)的HTTP標(biāo)頭。
@ FormParam略有特殊,因為它提取請求表示,該類型匹配前面的@Consumes所聲明的類型。
范例如下:
??@POST
??@Consumes("application/x-www-form-urlencoded")
??public void post(@FormParam("name")???String name) {
6.pojo層面等相關(guān)注解,@XmlRootElement,支持JPA注解。
總結(jié)
以上是生活随笔為你收集整理的Jersey注解详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中查看负载
- 下一篇: 3.项目的基本概念