【发布时间】:2010-09-23 19:48:00
【问题描述】:
我正在构建一个 JSF+Facelets Web 应用程序,其中一个方法是每隔一段时间扫描一个目录并索引任何更改。此方法是应用程序范围内的 bean 的一部分。我已经构建了 TimerTask 的子类,每 X 毫秒调用一次该方法。我的问题是初始化 bean。我可以在页面上引用 bean,当我转到页面时,bean 被初始化,并按指示工作;相反,我想要的是在初始化 web 上下文时初始化 bean,这样它就不需要页面访问来启动索引方法。谷歌已经展示了一些想要这个功能的人,但是除了与 Spring 集成之外没有真正的解决方案,我真的不想仅仅为了获得这个功能而做。
我尝试过使用设置了“启动时加载”的 servlet 和 ServletContextListener 来让事情顺利进行,但无法正确设置,因为没有t FacesContext 可用,或者因为我无法从 JSF 环境中引用 bean。
有什么方法可以在 Web 应用启动时初始化 JSF bean?
【问题讨论】: