簡體   English   中英

Spring Boot與Apache CXF的RESTful Web服務?

[英]Spring Boot vs. Apache CXF for RESTful Web Services?

我是編碼競賽的一部分,任務是創建一個RESTful在線市場,用戶可以通過http發布買賣請求。

我需要構建一個接受並存儲這些請求的前端Web服務。

技術要求包括Spring boot和CXF。 據我所知,CXF和Spring啟動都能夠接受http請求。

在spring boot中,您使用如下控制器:

@Controller
@EnableAutoConfiguration
public class controller {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello, World!";
    }
}

而對於CXF(使用javax.ws.rs),代碼可能如下所示:

@WebService(serviceName = "MarketService", targetNamespace = "http://localhost:9005")
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public interface MarketService {

    @GET
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces({ MediaType.APPLICATION_JSON })
    @Path("/sells/{id}")
    public prod getProduct(@PathParam("id") int id);

有人可以幫我理解這兩種處理http請求的方法之間的根本區別嗎? 有沒有辦法在同一個應用程序中同時使用Spring Boot和CXF?

Spring MVC和Apache CXF是兩個獨立的框架來處理HTTP請求,可用於構建REST Web服務。

  • Spring MVCSpring下的一個項目“傘”(因此與它構建的Spring框架緊密相關),
  • Apache CXF是JAX-RS(REST)和JAX-WS(SOAP)的開源實現。 Apache CXF可以獨立運行,也可以包含在Spring應用程序中。

如果您正在尋求構建REST Web服務,它們幾乎是互斥的(您必須選擇一個)。 如果您要做的就是構建REST Web服務,那么它們就完全相同了。 如果你還需要一個MVC框架來提供HTML頁面,那么Spring MVC就具備了這種能力(CXF沒有)。

個人觀點 :與CXF(需要更多XML配置)相比,Spring MVC更易於入門(感謝Spring Boot處理大部分配置)。

PS:在您的CXF示例中,您有一個@WebService注釋。 此批注是JAX-WS(SOAP)的一部分,而不是JAX-RS(REST)。 你可能不需要它。

檢查這個項目是否適合通過TomEE在Tomcat上利用CXF的JAX-RS(REST)。

一切都准備就緒。

這里有詳細說明:

注意,運行CXF“Standalone”仍然需要一個Servlet容器(Tomcat或Jetty),因此上面幾個步驟已完成,簡化並在一個小型啟動項目中完成。 專為不耐煩的人(如我自己)而設計,他們不喜歡閱讀路線,也喜歡開始黑客攻擊。 我總是更容易從有用的東西開始,然后調整它。

使用Spring Boot CXF JAX-RS啟動器添加:

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
  <version>3.1.7</version>
</dependency>

另見: http//cxf.apache.org/docs/springboot.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM