获得另一个 bean 的首选方法:评估 EL 或 @Inject



我们可以通过两种方式获得jsf bean:

JobApplicant jobApplicant = (JobApplicant) FacesUtils.getManagedBean("jobApplicant");

收录房产

@Inject
JobApplicant jobApplicant //getter and setter required

首先,我们可以在方法中正确获取 bean,因此 in 不会分配内存。如果它是类成员(使用 Inject),它总是需要一些内存来保存对该 bean 的引用。同样在这种情况下,jobApplicant的范围必须至少不短于注入jobApplicant的外豆的范围。但是在使用utils的情况下,范围可能是一个view例如,它比外豆的范围短session是吗?

获得豆子的最佳方法是什么?

依赖注入的主要好处之一是控制模式的反转。您无需自己创建实例,而是告诉管理容器您需要哪些依赖项。因此,您应该尽可能坚持"@Inject"方法。你可以将它与字段、构造函数和 setter 一起使用,所以你关于它需要 getter/setter 的说法是不正确的。

您会注意到,当您的代码不调用任何静态工厂方法而只需要注入 bean 时,测试会变得容易得多。

最新更新