上下文和范围之间的区别

2022-04-13 00:00:00 scope java cdi

研究JSR-299时,我阅读了Weld reference的5.1节,其中解释了作用域在CDI中的工作方式。显然,语境是一个与范围密切相关的概念。在我的脑海中,这两个词的区别并不清楚,我甚至忍不住想把这两个词互换一下。

作用域和上下文之间有什么区别?这两个概念之间有什么关系?


解决方案

每个作用域都有单独的上下文。

上下文是已使用各自的作用域定义的Bean的容器。

这就是为什么上下文实现使用作用域的名称-ApplicationContextDependentContextRequestContext等。

这实际上是一个实现细节--作为CDI的用户,您应该只了解作用域(因为您是为您的Bean定义的),并且实现决定将这些Bean放置在哪里以及如何管理它们的生命周期。

相关文章