Jakarta ee jax-rs上下文解析器<;T>;不可靠
但我试图理解jax-rs中提供者的用法,但无法理解如何使用ContextResolver。有人能用一些基本的例子来解释这一点吗?您将看到它在解析序列化上下文对象时被大量使用。例如,用于JSON序列化的Jakarta ee jax-rs上下文解析器<;T>;不可靠,jakarta-ee,jax-rs,resolver,Jakarta Ee,Jax Rs,Resolver,但我试图理解jax-rs中提供者的用法,但无法理解如何使用ContextResolver。有人能用一些基本的例子来解释这一点吗?您将看到它在解析序列化上下文对象时被大量使用。例如,用于JSON序列化的ObjectMapper。比如说 @Provider @Produces(MediaType.APPLICATION_JSON) public static JacksonContextResolver implements ContextResolver<ObjectMapper> {
ObjectMapper
。比如说
@Provider
@Produces(MediaType.APPLICATION_JSON)
public static JacksonContextResolver implements ContextResolver<ObjectMapper> {
private final ObjectMapper mapper;
public JacksonContextResolver() {
mapper = new ObjectMapper();
}
@Override
public ObjectMapper getContext(Class<?> cls) {
return mapper;
}
}
这是一个很好的例子。它可以作为工厂使用,根据输入生成对象。您可以阅读中的说明。它没有详细说明它的用途,所以我想它是通用的。如果你能让它工作,那么我想就使用它吧。我还没有找到任何文档说明对于特定的内容类型,应该从
ContextResolver
返回什么类型的对象,但我确实在RestEasy文档中找到了这条注释:
@Path("..")
public class Resource {
@Context
private Providers provider;
@GET
public String get() {
ContextResolver<ObjectMapper> resolver
= providers.getContextResolver(ObjectMapper.class, MediaType.APPLICATION_JSON);
ObjectMapper mapper = resolver.getContext(...);
}
}