我相信,如果您使用 ApplicationScope 注入一个 bean 并且它从未被实例化,CDI 会给您 null。
但是,如果您创建一个新实例,然后尝试在稍后注入它可以正常工作,从那时起它将继续正常工作。
在 JSF 依赖注入中,您不必创建一次。我相信 JSF 会做类似的事情
//pseudo code
AtStartUp () {
if (applicationScoped)
create new Instance();
或者可能
AtInjectionPoint () {
if (applicationScoped && null)
return new Instance();
else return Instance;
虽然我相信 CDI 会做类似的事情
AtInjectionPoint () {
return Instance;
你能跟我来这里吗?我的问题基本上是我们拥有的每个应用程序范围的 bean 都是空的,除非我们创建一次。我们非常希望 CDI 能够以某种方式处理这个问题,并且表现得像前两个伪代码示例之一。
有人知道更多吗?