搭建SpringMVC(非web.xml檔案方式)
配置DispatcherServlet
既然DispatcherServlet是Spring MVC的核心,首先來配置DispatcherServlet。傳統的配置DispatcherServlet是通過web.xml來配置的,然後將web.xml放在應用的WAR包裡面。這裡不使用web.xml檔案配置,而採用Java來將DispatcherServlet配置在servlet容器中。
通過Java 來配置其實很簡單,只需要繼承AbstractAnnotationConfigDispatcherServletInitializer類即可配置DispatcherServlcet。程式碼如下:
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ //對映路徑到DispatcherServlet上 @Override protected String[] getServletMappings(){ return new String[] { "/" }; } //指定哪些配置類由DispatcherServlet載入 @Override protected Class<?>[] getServletConfigClasses(){ return new Class<?>[] { WebConfig.class }; } //指定哪些配置類由ContextLoaderListner載入 @Override protected Class<?>[] getRootConfigClasses(){ return new Class<?>[] { RootConfig.class }; } }
這裡面需要重寫這三個方法,下面具體解釋每個方法的作用:
getServletMapping()方法:
這個方法將一個或多個路徑對映到DispatcherServlet上。上面的例子中指定“/”,表明它是預設的Servlet,會處理進入應用的所有請求。
getServletConfigClasses()方法:
該方法返回的配置類,由DispatcherServlet載入應用上下文時載入其中的Bean。也就是說我們開發Web應用時,使用Java配置Bean的配置類,會放在該方法的返回陣列中。
getRootConfigClasses()方法:
通常在Spring Web應用中,包含Web元件的bean,如控制器、檢視解析器、處理器對映等由DispatcherServlet載入,而其他如中間層和資料層的bean則交給另一個應用上下文ContextLoaderListener載入。該方法就是指定哪些配置類由ContextLoaderListener載入。
啟動SpringMVC
XML中啟動SpringMVC是使用<mvc:annotation-driven>啟動註解啟動的SpringMVC。但這裡還是不用XML,仍然採用Java進行配置。
最簡單的啟動SpringMVC就是在配置類上新增@EnableWebMvc註解。
@Configuration
@EnableWebMvc
public class WebConfig{
}
當然,這是最最簡單的SpringMVC的配置類,該配置類可以新增很多東西來配置很多功能,比如配置元件掃描,配置檢視解析器,配置靜態資源處理等等。
@Configuration //宣告是配置類 @EnableWevMvc //啟動SpringMVC @ComponentScan //啟動元件掃描 public class WebConfig extends WebMvcConfigurerAdapter{ //手動配置自己的Bean @Bean public Login loginImpl(){ } //配置JSP檢視解析器 @Bean public ViewResolver viewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } //配置靜態資源處理 @Override public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer){ configurer.enable(); } }
RootConfig的話,如果是WEB開發,可直接寫一個空的配置類即可。
使用SpringMVC
搭建好SpringMVC後,就可以使用SpringMVC了。編寫Controller和JSP檢視和普通的Ja'v'a開發沒什麼區別。