CDI中的上下文和范围之间的区别 - 以及Java

bra*_*zzi 13 java scope cdi

在学习JSR-299之后,我阅读了Weld参考文献的第5.1节,其中解释了范围在CDI中的工作原理.显然,语境是与范围密切相关的概念.我已经理解了每一个是什么,但在我的脑海里并没有非常清楚地分开,我甚至想要交替使用这些词.

范围和背景有什么区别?这两个概念之间有什么关系?

我希望CDI领域有一个答案,但我对一般的Java有疑问,因为这些概念也用于其他环境.实际上,在CDI,Java 一般情况下解释概念的答案会得到更多的积分 - 如果我能给他们的话.

Boz*_*zho 8

每个范围都有一个单独的上下文

上下文是已使用相应范围定义的bean的容器.

这就是为什么上下文实现承载范围的名称- ,ApplicationContext,DependentContext,RequestContext等.

这实际上是一个实现细节 - 作为CDI的用户,您应该只知道范围(因为您为bean定义了它),并且实现决定了这些bean的放置位置以及如何管理它们的生命周期.