JAX-RS/Jersey 中的资源 Class 和提供者 class 有什么区别?
What is the difference between Resource Class and Provider class in JAX-RS/Jersey?
在 Jersey/JAX-RS 中,我听到术语 "Resource classes" 和 "Providers"。我不清楚这两者之间的区别是什么。有人可以提供一些适当的解释吗?
Resource classes 是用 @Path
注释的 类,提供者是我们可以 extend/implement 允许我们点击 [=60] 的任何其他 类 =] JAX-RS 框架,即
ContainerRequestFilter
ContainerResponseFilter
MessageBodyReader
MessageBodyWriter
WriterInterceptor
ReaderInterceptor
ContextResolver
ExceptionMapper
ClientRequestFilter
ClientResponseFilter
除了客户端过滤器,所有这些提供程序 类 都可以用 @Provider
注释并在启用扫描时自动在服务器端注册。
您可能经常听到类似 "What JSON provider are you using?" 的问题,这是指 MessageBodyReader
或 MessageBodyWriter
,这是一种提供商,或者更准确地说是 "Entity Provider",因为the docs 中提到。这实际上是唯一具有自己的前缀类型的提供者类型。所有其他的只是概括为 "Provider".
提供者类型可能更多,但我现在能想到的就这些。
在 Jersey/JAX-RS 中,我听到术语 "Resource classes" 和 "Providers"。我不清楚这两者之间的区别是什么。有人可以提供一些适当的解释吗?
Resource classes 是用 @Path
注释的 类,提供者是我们可以 extend/implement 允许我们点击 [=60] 的任何其他 类 =] JAX-RS 框架,即
ContainerRequestFilter
ContainerResponseFilter
MessageBodyReader
MessageBodyWriter
WriterInterceptor
ReaderInterceptor
ContextResolver
ExceptionMapper
ClientRequestFilter
ClientResponseFilter
除了客户端过滤器,所有这些提供程序 类 都可以用 @Provider
注释并在启用扫描时自动在服务器端注册。
您可能经常听到类似 "What JSON provider are you using?" 的问题,这是指 MessageBodyReader
或 MessageBodyWriter
,这是一种提供商,或者更准确地说是 "Entity Provider",因为the docs 中提到。这实际上是唯一具有自己的前缀类型的提供者类型。所有其他的只是概括为 "Provider".
提供者类型可能更多,但我现在能想到的就这些。