首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何结合观察者模式在Spring中实现轮询

如何结合观察者模式在Spring中实现轮询
EN

Stack Overflow用户
提问于 2011-06-27 01:13:19
回答 1查看 746关注 0票数 0

我正在尝试实现一个服务,该服务通过线程异步执行轮询,然后通知观察者列表。

其体系结构如下:多个并发、jsf会话bean、可以注册到单例服务,并在新的数据更新可用时由线程通知。通知后,每个jsf会话bean执行一些操作,方法是访问其他会话范围内的spring (这些是在context.xml中定义的服务)。

我现在面临的问题是,更新线程无法访问那些会话范围内的spring,因为它们的代理不能从更新线程中解决,这是可以理解的,因为该线程是在应用程序上下文之外实例化的,并且在可用bean上没有可见性。但是,如何在Spring中实现这样的机制呢?

我还尝试使用一个任务执行器bean,希望Spring以某种方式使它成为当前上下文的一部分,但失败了(通知的jsf会话bean调用的会话范围的spring无法解析)。

任何帮助都将不胜感激。谢谢。

编辑:添加了有关通信流程的更多信息。

每次新用户生成新会话时,都会创建相应的jsf会话bean。这个bean (一旦绑定到http会话)将被注册到spring服务(单例)。当至少注册一个jsf会话bean时(因此,当至少有一个观察者时),此服务将激活轮询机制。当服务发现新的更新可用时,它将通过调用它们的" update ()“方法通知注册的观察者。在此方法中,每个观察者(或jsf会话bean)将通过其他一些作为代理的春季会话bean执行一些操作。这就是“通信”失败的地方,因为原始轮询线程(更新服务中的线程)不知道如何解析spring代理。是否有办法使此信息可供轮询线程使用?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-06-27 05:49:00

如何使用一个已知的对象-- JSF和Spring会话bean --作为观察者?您需要对每个请求轮询该对象。但在这种情况下,您最好只是投票的原始来源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6490740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文