在Web服務(wù)開發(fā)中,我們經(jīng)常需要使用CXF框架來提供接口服務(wù)。而對于接口的參數(shù)傳遞方式,除了常見的XML傳輸,JSON也是一種非常流行的方式。因此,本文將介紹如何在CXF中使用JSON格式的參數(shù)傳遞。
首先,在CXF項目中引入以下依賴:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>${jackson.version}</version> </dependency>
其中,cxf-rt-frontend-jaxrs是CXF提供的JAX-RS實現(xiàn),而jackson-jaxrs-json-provider則是實現(xiàn)JSON轉(zhuǎn)換的一個庫。
接下來,在CXF服務(wù)方法的參數(shù)前加上@RequestBody注解,表示這是一個JSON格式的參數(shù):
@POST @Path("/save") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response save(@RequestBody User user) { // ... }
在上述示例中,我們定義了一個/save的接口,接收一個名為user的參數(shù),并且該參數(shù)是JSON格式的。可以看到,@RequestBody注解是用來標(biāo)識參數(shù)類型的,表示參數(shù)來自請求體中,而不是路徑參數(shù)。
最后,就可以使用Postman等工具,向該接口發(fā)送JSON格式的請求了:
{ "username": "test", "password": "123456" }
至此,我們已經(jīng)完成了CXF中使用JSON格式參數(shù)傳遞。