2013-04-29 43 views
0

我試圖將Spring和SpringMVC放入我們真正的傳統項目中。問題是我們的項目非常大,包含大量的專有請求處理。我必須逐步介紹它,因爲舊的處理程序必須使用舊的基礎結構。正因爲如此,我必須使用原始的servlet。將其更改爲DispatcherServlet沒有問題,我必須解決的唯一問題是,我需要區分Controller和Class之間的類,它必須以舊的方式處理。在DispatcherServlet中獲取控制器類請求

我需要獲取DispatcherServlet將調度此請求的類。是否有可能以某種方式查詢SpringMVC獲取將作爲控制器的bean?

感謝

+0

您是否使用註解來標記控制器? – sanbhat 2013-04-29 06:19:11

+0

是的,但我不想爲此進行手動掃描,因爲這只是複製Spring DispatcherServlet本身將執行的另一個邏輯。 – 2013-04-29 07:08:01

回答

0

我覺得this線程應該幫助你。一旦你的Controllers列表,然後你可以檢查它@RequestMapping PARAM用類似的方法來檢查其上下文路徑與傳入要求的上下文路徑,獲得該請求的控制器。

+0

我已經發現這個評論,但這不是我正在尋找的。如果我使用這種方法,這意味着我必須檢查所有映射(評估相對路徑等),這意味着要複製已在SpringMVC某處實施的某些服務。 Spring中必須有一些東西已經有了。 – 2013-04-29 07:07:15

0

我從來沒有這樣做在一個大的應用程序,但我並遷移現有的servlet的基於應用程序的Spring MVC的幾次,我這是怎麼做的:

  1. 地圖所有現有請求DispatcherServlet

  2. 創建一個控制器來處理任何請求url /**。在此控制器中,將請求處理委託給現有的服務器端組件,如果運氣好的話,這意味着一個或多個servlet。我會稱之爲全球控制器。

  3. 最後,你應該有一個代理DispatcherServlet /控制器,基本上使用你的舊代碼的應用程序。

  4. 接下來,我將逐步實現新的控制器/方法,用於使用Spring MVC服務的特定URL。由於您的請求映射這些URL是特定的,所以會調用新的控制器而不是全局控制器。

因爲你會繼續實施新的具體要求映射,控制器和控制方法,你到達那裏沒有或全局控制器處理幾個請求點。

希望這回答你的問題。

相關問題