任何人都可以向我解釋JAX-RS提供者是什麼以及@Provider註釋是幹什麼的。我一直在閱讀文檔,但我不能得到它。
如果有資源類爲傳入請求提供服務,提供者會做什麼?當我創建一個持久資源類(不是每個請求)時,它們與單例資源類有什麼不同?或者這些課程還是提供者?JAX-RS中的Provider是什麼意思?
回答
提供程序是擴展和自定義JAX-RS運行時的簡單方法。你可以把它們想象成插件(可能)改變運行時的行爲,以完成一套(程序定義的)目標。
提供商是不相同資源類,它們的存在,在概念上,在資源類和JAX-RS實施-之間的電平。如果有幫助,您可以將它們與設備驅動程序(存在於用戶和內核空間之間)相提並論。這是一個廣泛的概括。
當前JAX-RS規範定義了三類提供者。它們之間的共同點是所有提供者都必須通過@Provider註釋來標識,並遵循特定的構造函數聲明規則。除此之外,不同的提供者類型可能會有額外的註釋,並且會實現不同的接口。
實體提供商
這些提供商控制數據表示的映射(如XML,JSON,CSV)爲它們的Java對象的等同物。
上下文提供
這些提供商控制該資源可以經由@Context註解訪問上下文。
異常提供商
這些提供商控制Java異常到JAX-RS響應實例的映射。
你的運行中會與一些預定義的提供者,這將是負責執行的功能的基礎水平(例如用於映射和XML,翻譯的最常見的異常等等)。您也可以根據需要創建自己的提供者。
JAX-RS specification是閱讀這些不同提供程序類型及其功能的好參考(請參閱第4章)。
的@Provider註釋用於任何感興趣的JAX-RS運行時,如化MessageBodyReader和MessageBodyWriter。對於HTTP請求,MessageBodyReader用於將HTTP請求實體主體映射到方法參數。在響應方面,通過使用MessageBodyWriter將返回值映射到HTTP響應實體主體。如果應用程序需要提供額外的元數據(例如HTTP標頭或不同的狀態代碼),則方法可以返回一個包裝實體的響應,並且可以使用Response構建該響應。ResponseBuilder。
@Provider註釋使您能夠在原始XML級別檢查傳入和傳出郵件,並且以這種方式Provider是客戶端上Dispatch的對應部分。
- 1. 是什麼意思:是什麼意思?
- 2. 是什麼意思,在Python中是什麼意思?
- 3. SURF的min_dist和max_dist是什麼意思,FlannMatcher是什麼意思
- 4. 「?」是什麼意思?調用jsp的標記是什麼意思?
- 5. %{}是什麼意思?
- 6. '#'是什麼意思?
- 7. 「?」是什麼意思?
- 8. #{...}是什麼意思?
- 9. || =是什麼意思?
- 10. @是什麼意思
- 11. $$ $$是什麼意思?
- 12. `/ * @`是什麼意思?
- 13. 「=」是什麼意思
- 14. + =是什麼意思?
- 15. {..} [..]是什麼意思?
- 16. 什麼是:!:意思?
- 17. @ []是什麼意思?
- 18. 什麼是「||」意思?
- 19. /([^.]*)\.(.*)/是什麼意思?
- 20. &**是什麼意思?
- 21. @(...)是什麼意思?
- 22. &@是什麼意思?
- 23. 「\\。\」,「\ ?? \」,「\\?\」,「\\」是什麼意思?
- 24. &=是什麼意思?
- 25. {%=%}是什麼意思?
- 26. 是什麼意思?
- 27. %%是什麼意思?
- 28. {}是什麼意思?
- 29. 「*&」是什麼意思?
- 30. 「_」是什麼意思?
謝謝。我想我得到了這個事情的想法=) –
很好解釋@Perception。這對我的理解確實有幫助。 –
很好解釋。但有一個問題 - @provider實現如何與通過web.xml中的初始參數(jersey.config.server.provider.classnames)注入的javax.ws.rs.core.Feature接口的實現不同?訂單如何控制? –