我有一个和Spring Web MVC应用程序,我需要使用它以异步方式每次设备收集一些新的数据时,返回信息的外部设备驱动程序。我们需要在开始时将一个对象传递给开始读取方法。该对象实现了一个声明回调方法的API定义的接口。外螺纹回调会话作用域的Spring Bean
当这个回调方法需要在Spring的会话范围中操作某个bean时,问题就会引发。因为当回调实现想要访问Spring bean时,回调会在驱动程序的Thread中被调用,它会产生一个异常,说明当前线程不在Spring的受管作用域中。
我想知道是否有任何方法可以使实现回调接口的对象变成某种类型的代理,它知道构造它的会话上下文的信息,这样它就可以通过Spring的上下文调用bean方法目的?
这是我想到的一个解决方案,但是我发现它有点“哈克”。 我们在浏览器中使用基于计时器的DWR。 DWR控制器对事件队列进行轮询,以知道要发送回浏览器的内容。回调实现应该有权将正确的事件放入队列(由Spring管理)。这是问题出现的地方。 – NagyI 2012-02-09 14:52:34