【发布时间】:2013-05-01 22:39:52
【问题描述】:
基本上,我有一个将对象写入 JSON 的 MessageBodyWriter,我希望能够根据处理请求的资源方法来控制输出的某些方面。但是,@Provider 类的默认生命周期是单例的(每个 JVM 一个),因此我无法注入某些配置对象的实例。这给我留下了两个明显的解决方法:
- 使用自定义注释:对 writeTo(...) 的每次调用都包含所调用方法的注释列表,因此我可以检查是否存在某些注释。然而,JAX-RS 方法已经充满了元编程。
- 使用 ThreadLocal 属性映射:假设每个线程一个请求,但这种方法有点破坏封装。资源方法需要知道还有其他一些类在寻找这个映射。
有没有办法改变 Provider 本身的生命周期?我正在使用泽西岛。
【问题讨论】: