范围内的对象在春天,我有很多的代码,使用这样定义会话bean:春季会议在@Scheduled
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
在我的web应用都是很好的,因为一个会话范围 可用。
在我的JUnit测试,所有也无妨,因为我使用的是
WebContextTestExecutionListener
(link),对于会话范围但注册一个线程 范围时
@Scheduled
的方法被调用时,我由于没有 会话范围,因此得到例外。
现在我的问题是:我如何注册在我的@Scheduled
方法用于会话范围线程范围是什么?
我已经试过这样的事情:beanFactory.registerScope("session", new SimpleThreadScope());
但也重写我的web应用:(的会话范围
计划任务在任意线程上执行。它们与会话范围没有逻辑关系,所以尝试这样做是没有意义的。 – skaffman 2012-03-03 22:27:20
我同意计划任务没有逻辑会话范围。因此,可以将计划上下文中会话作用域的含义从http-session-scope更改为另一种“会话”作用域,例如threadlocal或singleton。 – Cojones 2012-03-04 07:28:36