既然DispatcherServlet是Spring MVC的核心,首先來配置DispatcherServlet。傳統的配置DispatcherServlet是經過web.xml來配置的,而後將web.xml放在應用的WAR包裏面。這裏不使用web.xml文件配置,而採用Java來將DispatcherServlet配置在servlet容器中。java
經過Java 來配置其實很簡單,只須要繼承AbstractAnnotationConfigDispatcherServletInitializer類便可配置DispatcherServlcet。代碼以下:web
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 }; } }
這裏面須要重寫這三個方法,下面具體解釋每一個方法的做用:數組
這個方法將一個或多個路徑映射到DispatcherServlet上。上面的例子中指定「/」,代表它是默認的Servlet,會處理進入應用的全部請求。mvc
該方法返回的配置類,由DispatcherServlet加載應用上下文時加載其中的Bean。也就是說咱們開發Web應用時,使用Java配置Bean的配置類,會放在該方法的返回數組中。app
一般在Spring Web應用中,包含Web組件的bean,如控制器、視圖解析器、處理器映射等由DispatcherServlet加載,而其餘如中間層和數據層的bean則交給另外一個應用上下文ContextLoaderListener加載。該方法就是指定哪些配置類由ContextLoaderListener加載。jsp
XML中啓動SpringMVC是使用<mvc:annotation-driven>啓動註解啓動的SpringMVC。但這裏仍是不用XML,仍然採用Java進行配置。
最簡單的啓動SpringMVC就是在配置類上添加@EnableWebMvc註解。ide
@Configuration @EnableWebMvc public class WebConfig{ }
固然,這是最最簡單的SpringMVC的配置類,該配置類能夠添加不少東西來配置不少功能,好比配置組件掃描,配置視圖解析器,配置靜態資源處理等等。spa
@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開發,可直接寫一個空的配置類便可。code
搭建好SpringMVC後,就可使用SpringMVC了。編寫Controller和JSP視圖和普通的Java開發沒什麼區別。xml