CXF+Spring RESTful接口集成JSON表现形式

CXF 和 Spring 的组合,用来搞 RESTful 接口还挺顺手的,是想把数据直接以 JSON 格式扔给前端的时候,配置一下就能用。

用的是 CXF 的 JAX-RS 支持,配合 Spring 注入服务,结构清晰,扩展也方便。你只需要在web.xml里挂个CXFServlet,再写几个@Path@GET这种注解,就能搞定接口。

比如写个/hello接口返回"Hello, World!"的 JSON,逻辑也简单。实现类里直接用 Gson 转一下 JSON,Response.ok()一包就完事。响应快,代码也好维护。

如果你之前只用 Spring MVC 写过 REST 接口,不妨试试这个组合。适合在有 SOAP 需求又想搞点 REST 的项目里用,兼容性好,部署起来也方便。

开发中建议先搞清楚jaxrs:server的配置方式,Spring 那边别忘了注入实现类。测试的话,curl 或者浏览器插件都能搞定。

,这套方式比较适合做轻量接口或者快速原型。想深入了解,推荐你看看下面这些链接,配置细节啥的都有。

zip
toJson.zip 预估大小:83个文件
folder
toJson 文件夹
file
.project 1KB
folder
WebContent 文件夹
folder
WEB-INF 文件夹
file
applicationContext.xml 2KB
folder
lib 文件夹
file
geronimo-stax-api_1.0_spec-1.0.1.jar 28KB
file
XmlSchema-1.4.7.jar 145KB
file
cxf-2.3.0.jar 4.89MB
file
xml-resolver-1.2.jar 82KB
file
oro-2.0.8.jar 64KB
file
jetty-server-7.1.6.v20100715.jar 262KB
file
wsdl4j-1.6.2.jar 145KB
file
geronimo-jaxws_2.2_spec-1.0.jar 59KB
file
commons-httpclient-3.1.jar 298KB
file
cxf-xjc-dv-2.3.0.jar 15KB
file
jetty-http-7.1.6.v20100715.jar 97KB
file
js-1.7R1.jar 739KB
file
commons-httpclient.jar 218KB
file
serializer-2.7.1.jar 272KB
file
spring-core-3.0.4.RELEASE.jar 359KB
file
geronimo-activation_1.1_spec-1.1.jar 46KB
file
saaj-impl-1.3.2.jar 272KB
file
xalan-2.7.1.jar 3.03MB
file
commons-logging-1.1.1.jar 59KB
file
saaj-api-1.3.jar 18KB
file
spring-tx-3.0.4.RELEASE.jar 226KB
file
spring-expression-3.0.4.RELEASE.jar 163KB
file
jaxb-impl-2.2.1.1.jar 857KB
file
cxf-xjc-ts-2.3.0.jar 12KB
file
geronimo-servlet_3.0_spec-1.0.jar 94KB
file
jetty-util-7.1.6.v20100715.jar 185KB
file
slf4j-jdk14-1.6.1.jar 9KB
file
FastInfoset-1.2.8.jar 285KB
file
geronimo-javamail_1.4_spec-1.7.1.jar 218KB
file
slf4j-api-1.6.1.jar 25KB
file
jsr311-api-1.1.1.jar 45KB
file
geronimo-ws-metadata_2.0_spec-1.1.3.jar 15KB
file
jaxb-api-2.2.1.jar 102KB
file
spring-web-3.0.4.RELEASE.jar 385KB
file
geronimo-annotation_1.0_spec-1.1.1.jar 12KB
file
antlr-2.7.7.jar 435KB
file
stax2-api-3.0.2.jar 176KB
file
spring-aop-3.0.4.RELEASE.jar 313KB
file
geronimo-jms_1.1_spec-1.1.1.jar 32KB
file
jettison-1.2.jar 71KB
file
xmlsec-1.4.3.jar 437KB
file
woodstox-core-asl-4.0.8.jar 473KB
file
jetty-continuation-7.1.6.v20100715.jar 20KB
file
neethi-2.0.4.jar 32KB
file
spring-jms-3.0.4.RELEASE.jar 180KB
file
spring-beans-3.0.4.RELEASE.jar 543KB
file
jra-1.0-alpha-4.jar 10KB
file
wss4j-1.5.9.jar 323KB
file
aopalliance-1.0.jar 4KB
file
asm-3.3.jar 43KB
file
xmlbeans-2.4.0.jar 2.57MB
file
cxf-xjc-bug671-2.3.0.jar 11KB
file
jaxb-xjc-2.2.1.1.jar 2.97MB
file
cxf-xjc-boolean-2.3.0.jar 10KB
file
jetty-io-7.1.6.v20100715.jar 75KB
file
commons-lang-2.5.jar 273KB
file
spring-context-3.0.4.RELEASE.jar 650KB
file
commons-collections-3.2.1.jar 562KB
file
WHICH_JARS 3KB
file
commons-pool-1.5.2.jar 94KB
file
cxf-manifest.jar 12KB
file
spring-asm-3.0.4.RELEASE.jar 52KB
file
bcprov-jdk15-1.43.jar 1.56MB
file
velocity-1.6.4.jar 411KB
file
web.xml 978B
folder
META-INF 文件夹
file
MANIFEST.MF 39B
folder
src 文件夹
folder
com 文件夹
folder
ws 文件夹
folder
json 文件夹
folder
service 文件夹
file
StudentService.java 1KB
folder
impl 文件夹
file
StudentServiceImpl.java 2KB
folder
entity 文件夹
file
UserResponse.java 952B
file
Student.java 1KB
folder
.settings 文件夹
file
org.eclipse.wst.jsdt.ui.superType.container 49B
file
org.eclipse.wst.common.project.facet.core.xml 345B
file
org.eclipse.jdt.core.prefs 364B
file
org.eclipse.wst.jsdt.ui.superType.name 6B
file
org.eclipse.wst.common.component 470B
file
.jsdtscope 503B
folder
build 文件夹
folder
classes 文件夹
folder
com 文件夹
folder
ws 文件夹
folder
json 文件夹
folder
service 文件夹
folder
impl 文件夹
file
StudentServiceImpl.class 2KB
file
StudentService.class 584B
folder
entity 文件夹
file
Student.class 1KB
file
UserResponse.class 1KB
file
.classpath 838B
...
zip 文件大小:23.13MB