我正在开发一个 Java EE 应用程序,主要是带有 JSF 管理控制台的 JAX-RS,它使用 CDI/Weld 对javax.enterprise.context.ApplicationScoped
对象进行依赖注入。除了一些小的调试问题,CDI 为这个项目工作得很好。
现在我需要对注入 CDI 的对象生命周期进行一些非常粗粒度的控制。我需要具备以下能力:
- 从应用程序上下文中删除注入的对象,或
- 销毁/删除/清除/重置/删除整个应用程序上下文,或
- 定义我自己的
@ScopeType
和实现Context
,我可以在其中提供执行上述两个任务之一的方法。
我完全意识到,这与 CDI 和依赖注入的本质是相通的,如果不是反对的话。我只是想知道
- 这远程可能吗?
- 如果是,完成工作的最简单/最简单/最快/最万无一失的方法是什么?