範圍內的對象在春天,我有很多的代碼,使用這樣定義會話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