[英]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服務。
如果您正在尋求構建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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.