Apache CXF是一個(gè)開(kāi)源的Java Web Services框架,提供了一個(gè)輕量級(jí)、高性能和可擴(kuò)展的開(kāi)發(fā)框架。CXF支持多協(xié)議,可以支持REST、SOAP等多種協(xié)議,并且支持JSON、XML等多種數(shù)據(jù)格式。
在CXF中,使用JSON作為REST的數(shù)據(jù)交換格式很簡(jiǎn)單。可以通過(guò)添加以下依賴(lài)庫(kù)來(lái)支持JSON:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-extension-providers</artifactId> <version>3.1.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency>
在CXF中創(chuàng)建一個(gè)JSON的REST服務(wù)非常容易。只需要在服務(wù)類(lèi)上添加@Produces("application/json")注解即可。
@Path("users") public class UserService { @GET @Produces("application/json") public List<User> getUsers() { List<User> userList = new ArrayList<User>(); // get user list from database return userList; } }
在上面的例子中,當(dāng)客戶(hù)端請(qǐng)求/users時(shí),服務(wù)會(huì)返回一個(gè)JSON格式的用戶(hù)列表。
CXF還提供了一個(gè)特殊的Response類(lèi),用于返回JSON格式的數(shù)據(jù)。我們可以將任何對(duì)象傳遞給Response.ok()方法,并將它們轉(zhuǎn)換為JSON格式的數(shù)據(jù)。
@Path("users") public class UserService { @GET public Response getUsers() { List<User> userList = new ArrayList<User>(); // get user list from database return Response.ok(userList, MediaType.APPLICATION_JSON).build(); } }
在上面的例子中,我們將用戶(hù)列表轉(zhuǎn)換為JSON格式的數(shù)據(jù),并將它們作為響應(yīng)返回給客戶(hù)端。
總之,在CXF中使用JSON格式的REST服務(wù)非常容易。只需要添加相應(yīng)的依賴(lài)庫(kù),并在服務(wù)類(lèi)上使用@Produces("application/json")注解即可。此外,CXF還提供了Response類(lèi),方便將任何對(duì)象轉(zhuǎn)換為JSON格式的數(shù)據(jù)并返回給客戶(hù)端。