2015-04-17 89 views
14

使用Spring mvc和Jersey Rest servlet容器之間是否存在任何折衷?澤西遵循Jax RS標準。當我學習Spring MVC時,或多或少看起來一樣。在一些應用程序中,我發現人們使用jersey spring servlet。如果Spring(帶處理程序映射的調度程序servlet)可以完成所有工作,那麼Jersey的需求是什麼?提前致謝。spring mvc和Jersey之間的區別

回答

12

Spring MVC是一個完整的Web前端框架,除了由Jersey提供的JSON/XML REST功能外,還包括對HTML和其他模板的支持以及其他功能。

Spring MVC是第一個,它有自己的做事方式。 JAX-RS被定義爲基於註釋的REST處理程序的標準,Jersey是該標準的一個實現。 (這與@Autowired和CDI非常相似)

我個人比較喜歡Spring MVC,因爲我構建在Spring堆棧上,可以在我的JSON和HTML處理程序之間重用代碼,但打算作爲客戶自己的一部分部署的組件如果使用JAX-RS,系統可能更加靈活。

6

就我個人而言,我認爲這只是一個偏好問題,你從哪個角度看它。我會繼續說,在做這個考慮時,在構建不同的層時,可以說在其他業務,持久層等層上還有一個額外的「REST層」。就像持久性實現可以被換出一樣,REST實現也是如此。也就是說,雖然端點/控制器/資源類在實現方面看起來很相似,但(REST層的)其他特性完全不同。從Spring的角度來看,我認爲那些對Spring很熟悉的人會選擇保留MVC作爲REST實現,因爲它很熟悉

從澤西島的角度來看,這是我認爲大部分集成決策來的地方在;選擇如何實現REST層下的圖層。對於那個春天來說是一個可行的選擇,因爲它擁有豐富的生態系統。但作爲Jersey用戶,Jersey框架(對於REST實現)似乎更直觀,但這完全是偏見。要一起使用Spring和Jersey,你可以看看Combining Spring project and Jersey

至於Jersey是一個JAX-RS實現,我不認爲它是選擇REST實現時的決定性因素,春天的視角。我真的沒有看到它是一個很重要的因素。在Java EE環境中,確保您可以輕鬆地交換實現,但是當涉及到Spring集成時,並不那麼容易,因爲在將每個不同的JAX-RS實現與Spring集成時涉及到集成模塊和配置。

相關問題