一、定位
Apache CXF = 企业级 WebService 框架(SOAP + REST)
- 2.7.18 是 2.x 系列最终稳定版(2016 年),不再维护
- 实现 JAX‑WS(SOAP)+ JAX‑RS(REST) 双标准
- 主打 Java 企业级 SOA 服务开发,支持 Spring 无缝集成
一句话:CXF 就是用来快速开发、发布、调用 SOAP/REST 服务的 “WebService 全能框架”。
二、核心架构(三层,必背)
CXF 采用经典三层:Bus → 前端 → 绑定 → 传输
-
Bus(总线)
- CXF 核心中枢,全局唯一
- 管理拦截器、扩展、配置、生命周期
- Spring 中直接配置
<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"/>
-
前端(Frontend)
- JAX‑WS(SOAP):@WebService、@WebMethod
- JAX‑RS(REST):@Path、@GET、@POST
- 注解驱动,零 XML 即可开发服务
-
绑定层(Binding)
- SOAP Binding:Java ↔ SOAP(XML),默认 JAXB 序列化
- HTTP Binding:REST,支持 JSON/XML/ 表单
- 可扩展自定义协议格式
-
传输层(Transport)
- 支持:HTTP/HTTPS、JMS、Jetty、Tomcat、本地调用
- 客户端用 Conduit,服务端用 Destination
三、核心功能(面试高频)
1. 支持两种服务风格
- SOAP(JAX‑WS):强类型、WSDL、契约优先、适合企业级可靠交互
- REST(JAX‑RS):轻量、JSON/XML、资源导向、适合微服务 / 移动端
2. 强大拦截器链(Interceptor)
- 可在 请求前、请求后、响应前、响应后 插入自定义逻辑
- 常用:日志、鉴权、加密、签名、限流、监控
- 分 In 拦截器(入站) 和 Out 拦截器(出站)
3. 代码生成工具(开箱即用)
- wsdl2java:WSDL → Java 客户端代码
- java2ws:Java 接口 → WSDL + 服务发布
- 命令行 / Maven 插件均可执行
4. 支持 WS‑* 企业级标准
- WS‑Security(安全认证 / 加密)
- WS‑ReliableMessaging(可靠消息)
- WS‑Addressing、WS‑Policy 等适合银行、金融、国企等强安全、强可靠场景
5. Spring 无缝集成
- 直接用 Spring 管理 Bean、发布服务
- 配置极简,和 Spring MVC 可共存
四、2.7.18 版本特点(重点)
- 稳定老旧版:2.x 最后一个版本,不再更新,只适合老项目维护
- JDK 要求:最高支持 JDK 7(不支持 JDK 8+ 新特性)
- 依赖较旧:Spring 3.x、Jackson 1.x,升级容易冲突
- 够用但不新:功能完整,但无 3.x 的异步、响应式、性能优化
五、CXF 优势(对比 Axis2、Spring WS)
- 双模型一体:同时支持 SOAP + REST,一套框架搞定
- 注解驱动:开发快、代码简洁、少写 XML
- 拦截器强大:扩展能力极强,企业级需求好实现
- Spring 集成最好:和 Spring 生态融合度最高
- 轻量不笨重:比 Axis2 简单、启动快、内存占用小
六、缺点(面试必说)
- 性能一般:SOAP 基于 XML,比 Dubbo(TCP 二进制)慢很多
- 不适合微服务:REST 不如 Spring Boot 生态,SOAP 太重
- 2.7.18 老旧:无新特性、安全补丁少、JDK 受限
- 依赖复杂:老版本依赖容易冲突,升级成本高
七、CXF vs Dubbo(核心区别,必背)
表格
| 对比项 | Apache CXF 2.7.18 | Apache Dubbo |
|---|---|---|
| 定位 | WebService 框架(SOAP/REST) | 高性能 RPC 框架(TCP) |
| 协议 | SOAP(XML)、REST(HTTP/JSON) | Dubbo 协议(TCP 二进制) |
| 性能 | 一般(XML 序列化) | 极高(长连接、NIO、二进制) |
| 适用场景 | 企业级 SOA、对外 SOAP 接口 | 微服务、内部高频调用 |
| 注册中心 | 可选 ZK、Nacos | 默认 ZK,支持 Nacos |
| 版本现状 | 2.7.18 老旧,停止维护 | 持续更新,微服务主流 |
一句话:内部服务调用用 Dubbo,对外提供标准 SOAP/REST 接口用 CXF。
八、一句话总结(面试结尾必背)
Apache CXF 2.7.18 是成熟稳定的企业级 WebService 框架,支持 JAX‑WS(SOAP)与 JAX‑RS(REST),拦截器机制强大、Spring 集成友好,适合开发和调用标准 Web 服务;但版本老旧、性能一般,新项目优先用 Spring Boot + REST 或 Dubbo,老项目可继续维护使用。

被折叠的 条评论
为什么被折叠?



