如何@NameBinding在Jersey中使用过滤器对特定资源方法或资源类应用过滤器?
请考虑以下注释:
@NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface SomeAnnotaion{}
Run Code Online (Sandbox Code Playgroud)
它是如何工作的?
我有一个jersey2应用程序配置为通过杰克逊支持JSON,添加
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在POM文件中
public MyApplication() {
...
register(JacksonFeature.class)
...
}
Run Code Online (Sandbox Code Playgroud)
在我的申请中.一切正常,我的资源将反序列化的POJO作为参数
@POST @Consumes(MediaType.APPLICATION_JSON)
public void blah(MyPojo p) {
...
}
Run Code Online (Sandbox Code Playgroud)
现在,其中一个资源需要提及杰克逊ObjectMapper自己做一些反序列化.我试过做类似的事情
@Inject
public MyResource(@Context ObjectMapper mapper) {
...
}
Run Code Online (Sandbox Code Playgroud)
要么
@GET
public String foo(@Context ObjectMapper mapper) {
...
}
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,引用都mapper为null.如何ObjectMapper在我的资源中注入引用?