我们可以通过两种方式获得JSF豆:首选方法来获得另一个bean:评估EL或@Inject
JobApplicant jobApplicant = (JobApplicant) FacesUtils.getManagedBean("jobApplicant");
或
Ingecting财产
@Inject
JobApplicant jobApplicant //getter and setter required
在第一种方法,我们可以在方法中得到一个bean,所以在不分配内存。如果它是类成员(带注入),那么它总是需要一些内存来保存对该bean的引用。同样在这种情况下,jobApplicant
的范围必须至少不小于注入jobApplicant
的外部豆的范围。但是在使用utils的情况下,范围可能是view
,例如比外部bean的session
范围更短,是吗?
什么是最好的方法来获得一个bean?
'@ Inject'不是JSF,它是CDI - 不同的技术,getter和setter不是必需的。 – Geinmachi
没有真正的“最佳方法”;这取决于你的环境对你的任何限制。忘记所有那些记忆话题,这只是过早的优化 - 说话(除非你已经基准测试,并且存在真实的性能问题)。就多功能性和可扩展性而言,也许'@ Inject'更可取 – kolossus