刷新/重新加载应用程序范围托管 bean
我在刷新或重新加载应用程序范围的托管 bean 时遇到问题。它的行为就像缓存的数据bean。因此,一旦数据库端的数据发生更改,我想重新加载 bean 中的列表。 是否有办法刷新/重新加载列表,例如根据给定时间每天一次? 谢谢
I have a problem to refresh or reload an application scoped managed bean. It behaves as cached data bean. So once data is changed on db side, i want to reload the the list in the bean.
Is there anyway to refresh/reload the list, say once a day based on given time?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只需向应用程序作用域 bean 添加一个方法即可完成此操作。
然后将此 bean 抓取/注入到另一个 bean 中并调用该方法。
更新抱歉,我忽略了“每天一次”这一点。你的意思是后台自动重新加载?这最好通过由
ScheduledExecutorService
。 ServletContextListener 如下:创建一个
Reloader
看起来像这样(假设托管 bean 名称是data
)Just add a method to the aplication scoped bean which does exactly that.
Then grab/inject this bean in another bean and call the method.
Update sorry, I overlooked the "once a day" bit. You mean automatic reloading in the background? This is best to be achieved by a background thread which is managed by
ScheduledExecutorService
. Create aServletContextListener
like follows:Where the class
Reloader
look like this (assuming that the managed bean name isdata
)