CXF servlet 的目的是什么

What is the purpose of CXF servlet

我正在使用 Apache CXF 完成 Restful 网络服务的演示项目设置,我碰巧在 web.xml:

中找到了一段代码
    <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

我没有真正理解 servlet class 在这个 web.xml 中的用法。我用谷歌搜索 org.apache.cxf.transport.servlet.CXFServlet 并找到:

The CXFServlet class, which is defined by Apache CXF, is generated and registered to handle incoming requests.

现在,我真的不明白那一行是什么意思

  1. 这个 servlet 是否像在 Spring MVC 流程中那样伪装成前端控制器?
  2. 使用这个 servlet 的实际目的是什么 class?
  3. CXF如何使用Spring提供XML配置项目中定义的服务?
  4. org.glassfish.jersey.servlet.ServletContainer 在 Jersey 实现中的作用是否与 org.apache.cxf.transport.servlet.CXFServlet 在 Apache CXF 中的作用相同?

帮我弄清楚这些问题。

JAX-RS 规范建立在 Servlet 规范之上。每个实现都应该有一个 Servlet 作为应用程序的入口点。当一个请求进来时,它会被那个 Servlet 处理。 CXFServlet 是 CXF 对该入口点 Servlet 的实现。

Does this servlet pose as a front-controller, like in Spring MVC flow?

差不多。它类似于 Spring MVC 的 DispatcherServlet

What is the actual purpose of using this servlet class?

如上所述,它是 JAX-RS (CXF) 应用程序的入口点。

How does CXF use Spring to provide XML configuration of services defined in the project?

它使用Spring连接组件;将它们全部连接在一起。但是 it's not required (see also).

Does org.glassfish.jersey.servlet.ServletContainer serve the same purpose in Jersey Implementation as org.apache.cxf.transport.servlet.CXFServlet with Apache CXF?

差不多。