1. 程式人生 > >SpringMVC入門之二:配置及啟用SpringMVC(基於JAVA配置)

SpringMVC入門之二:配置及啟用SpringMVC(基於JAVA配置)

為了方便理解和簡化無關細節,我們要使用最簡單的方式來配置SpringMVC:所要實現的功能僅限於執行我們所建立的控制器。

  • 配置DispatcherServlet DispatcherServlet是SpringMVC的核心。在這裡請求會第一次接觸到框架,它要負責將請求路由到其他的元件之中。配置DispatcherServlet的傳統方式是在web.xml檔案中配置,這個檔案也會放到應用的war包裡面。但是,藉助於Servlet3規範和Spring3.1的功能增強,這種方式已經不是唯一的方案了,接下來就會講解新方法。 我們使用Java將DispatcherServlet配置在Servlet容器中,而不會再使用web.xml檔案。如下程式清單展示了所需的Java類。

擴充套件AbstractAnnotationConfigDispatcherServletInitializer的任意類都會自動地配置DispatcherServlet和Spring應用上下文,Spring的應用上下文會位於應用程式的Servlet上下文之中。

  • 啟用SpringMVC

    當Spring使用XML配置時,可以使用啟動註解驅動的SpringMVC。基於Java的配置中,使用@EnableWebMvc註解來啟動SpringMVC,如:

  • 檢視解析器

    當沒有配置檢視解析器時,Spring預設會使用BeanNameViewResolver,雅思週末班這個檢視解析器會查詢ID與檢視名稱匹配的bean,並且查詢的bean要實現View介面,它以這樣的方式來解析檢視。

  • 元件掃描

    在配置類中記得要啟用元件掃描,否則Spring只能找到顯式宣告在配置類中的控制器。

  • 對映分類

    這樣配置的話,DispatcherServlet會對映為應用的預設Servlet,所以它會處理所有的請求,包括對靜態資源的請求,如圖片和樣式表(在大多數情況下,這可能並不是你想要的結果)。

  • 配置完善

    鑑於上面的種種欠缺,我們的配置類應該是這樣的:

  • 元件掃描的作用

    上面我們啟動了元件掃描,因此將會掃描spitter.web下面的元件。稍後會看到,我們所編寫的控制器將會帶有@Controller註解,這會使其成為元件掃描時的候選bean。因此,我們不需要在配置類中顯式宣告任何控制器。

  • 靜態資源分流

    需要注意,新的WebConfig類還拓展了WebMvcConfigurerAdapter並重寫了其configureDefaultServletHandling()方法,通過呼叫DefaultServletHandlerConfigurer的enable()方法,我們要求DispatcherServlet將對靜態資源的請求轉發到Servlet容器中預設的Servlet上,而不是使用DispatcherServlet本身來處理此類請求。