CDI - bean实例可重用性

时间:2012-07-18 20:19:25

标签: java java-ee cdi

在我看来,两个字段都指向同一个实例,

会产生以下结果
class BeanToInject {
    // something
}

class TargetBean {

    @Inject
    private BeanToInject first;

    @Inject
    private BeanToInject second;

}

但似乎不是真的,因为我得到第一和第二个系统

first: BeanToInject@2f51cd27
second: BeanToInject@1e92abdf

是不是应该在给定的上下文中重用bean的引用? 我在这里想念的是什么?

2 个答案:

答案 0 :(得分:4)

您没有指定BeanToInject的范围,CDI的默认范围是dependent pseudo-scope,其中每个注入点都接收一个新的bean实例。

答案 1 :(得分:2)

您必须将BeanToInject类注释为@Singleton才能在两个注入点中使用相同的实例。