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