原文鏈接:https://segmentfault.com/q/1010000002484009
java.ws.rs 是 jax-rs 規范中定義的包名。
jax-rs 全程 Java API for RESTful Services
jax-rs 規范 目前版本是 2.0。 規范文檔
jax-rs 中定義了
一組啟動方式 (以jee作為http容器,還是配合servlet作為http容器)
一組注解 @GET, @POST, @DELETE, @PUT, @Consumes ... 通過 POJO Resource類, 提供Rest服務
其實這不難理解, 就像 JSR 規范中定義了 Servlet 是 以繼承 HttpServlet 並重寫 doGet, doPost, do... 方法 一樣.只要遵循 這套標准的 我們我們都可以稱之為 Servlet 程序.
而 Spring MVC 是以 Servlet 為http容器,並自己構建了一套Api,沒有遵循 jax-rs 規范。
更直白一點說吧。你寫的 Servlet 程序,可以不經過任何修改,放到任何實現 Servlet 容器中運行。
你寫的 jax-rs 程序,可以不經任何修改,和任何 jax-rs 框架配合使用。
目前實現 jax-rs 標准的框架有很多
Apache CXF,開源的Web服務框架。
Jersey, 由Sun提供的JAX-RS的參考實現。
RESTEasy,JBoss的實現。
Restlet,由Jerome Louvel和Dave Pawson開發,是最早的REST框架,先於JAX-RS出現。
Apache Wink,一個Apache軟件基金會孵化器中的項目,其服務模塊實現JAX-RS規范
我就是一個 Jersey 的使用者。
而如果你使用 Spring MVC 開發 Rest 服務,你的代碼就不能實現移植。
其實沒有好壞之分,Spring擁有一套成熟穩定且強大的解決方案。 所以看你喜歡那種方案。
個人推薦 Spring 。 Spring 強大的依賴注入是很大的吸引力,雖然其他框架也有 依賴注入,但是還是 Spring 的好用。