2011-12-09 43 views
0

我需要實現這個功能,但我不知道要設計和繼續這個。請幫助我。Spring struts2異步任務

我必須從web ui導入csv文件。我用struts2(mvc)+ spring(對象注入器) 我已經完成了這個任務。但是現在我不得不異步進口,即在許多進口時它應該支持。我該怎麼做?

我做了R & D.我發現石英。但我可以用這個嗎?

考慮一下,我有兩個按鈕。點擊第一個按鈕,它會轉到第一頁,我可以導入包含20k項目的cat1類型csv文件。點擊第二個按鈕它將轉到另一個頁面,我可以導入包含20k項目的cat2類型的csv文件。

我該如何實現它。現在它的發生就像一次只能進行一次導入。但我希望這是異步的。

回答

0

從您的要求來看,我不認爲需要Quartz。 Quartz是一個調度器,你需要的是一個Spring異步任務執行工具。

基本上,在第一次調用異步bean時,立即返回控件並將調用的異步bean交給Spring的TaskExecutor,後者進一步控制給定方法邏輯的執行。

你的選擇高級概述如下:你將需要注入TaskExecutor bean實現到Spring上下文和您的異步方法的邏輯必須由

  • XML莫名其妙地進行切換或者-config)佈線TaskExecutor作爲含有春bean方法內協作者您打算異步執行並調用execute()方法的TaskExecutor,或
  • 註解的配置)通過標記第e用@Async註釋的預期方法。請注意,TaskExecutor實現必須注入到Spring上下文中。

另外,還要說,如果您想從你的異步任務返回的東西說明,返回類型必須是Java的Future<T>接口,這是一個要求,因爲TaskExecutor是建立在java.concurrent.util.Executor接口的實現。我不能評論Struts,儘管我從來沒有用過它,但據我所知,Struts應該沒有意識到異步性 - 僅靠Spring就完成了繁重的工作。

有關上述主題進行更徹底的和完整的外觀,我建議從以下幾個環節:

+0

非常感謝你許多。你的答案幫了我很多。:) –

+0

沒問題,這就是我們在這裏。如果答案確實對你有所幫助,請隨時接受並回復它:o) – quantum