我们需要销毁以编程方式获得的CDI bean吗?

时间:2017-07-25 05:41:09

标签: java cdi java-ee-7

我已经获得了一个CDI bean,它是使用以下代码以编程方式获得的:

MyBean bean = CDI.current().select(MyBean.class, qualifier).get();

完成后,我是否需要使用

销毁此bean
CDI.current().destroy (bean);

或者bean是否从我的类继承范围?

1 个答案:

答案 0 :(得分:2)

  

或者bean是否从我的类继承范围?

绝对没有。它将具有您对MyBean的任何范围。

  

我是否需要销毁此bean

如果您的豆子是正常的范围,您不需要这样做。但是,如果它被称为伪范围,则可能需要销毁它。 对于记录,正常范围是所有基本CDI范围 @Dependent除外。

原因是@Dependent生命周期(因此也会破坏)绑定到您注入它的bean。但你并没有真正注入它,而是你进行了程序化查找。因此,它不会绑定到任何其他bean,你应该销毁它。