#806·Recaf

在应用程序范围类型 + 构建器中调整所有依赖注入

作者: Col-E创建于 2024年6月11日更新于 2026年5月7日
标签enhancement

背景: https://rmannibucau.wordpress.com/2015/03/02/cdi-and-instance-3-pitfalls-you-need-to-know/ 最近一个问题的示例可以在 f1da92e8fc8fca95339a154792b15607c353e8e5 中找到 - `AntiDecompilationSummarizer` 定义了 `Instance<MappingGeneratorPane>` - `AntiDecompilationSummarizer` 类是 `ApplicationScoped` - `Instance<MappingGeneratorPane>` 中生成的值没有在容器中被"销毁", 从而导致泄漏问题 - 通过调用 `generatorPaneProvider.destroy(value)` 来解决了这个问题, 但这需要在所有类似的情况下处理。更自动化的方法是理想的。在我们使用依赖项时, 如果我们能够自动调用 destroy, 这样 CDI 就不会阻止垃圾收集, 同时仍然确保生成的 bean 可以访问注入的服务, 这将是很棒的。否则, 我们可能可以重新创建 `Dependent` 作用域。