java – JSF2 ApplicationScope bean实例化时间?
发布时间:2020-12-14 05:51:00 所属栏目:Java 来源:网络整理
导读:在我看来,@ ApplicationScoped bean仅在第一次使用EL访问页面时启动. 当我查询ApplicationMap时,是否会创建@ApplicationScoped bean? ExternalContext ec = currentInstance.getExternalContext(); result = ec.getApplicationMap().get(beanName); 如何在
在我看来,@ ApplicationScoped bean仅在第一次使用EL访问页面时启动.
当我查询ApplicationMap时,是否会创建@ApplicationScoped bean? ExternalContext ec = currentInstance.getExternalContext(); result = ec.getApplicationMap().get(beanName); 如何在加载XHTML页面之前触发应用程序作用域bean的实例化? 解决方法
您可以在
@ManagedBean 声明中使用eager = true.
@ManagedBean(eager=true) @ApplicationScoped public class Config { // ... } 这样bean将在webapp的启动时自动处理. 除此之外,您还可以使用 FacesContext context = FacesContext.getCurrentInstance(); Confic config = (Config) context.getApplication().evaluateExpressionGet(context,"#{config}",Config.class); // ... 您也可以将它作为您需要它的bean的 @ManagedBean @RequestScoped public class Register { @ManagedProperty("#{config}") private Config config; @PostConstruct public void init() { // ... } // ... } 在注入父bean之前,JSF将自动创建它.它可以在@PostConstruct之外的所有方法中使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |