搭建SpringMVC(非web.xml文件方式)

配置DispatcherServlet

既然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 };
    }
}

這裏面須要重寫這三個方法,下面具體解釋每一個方法的做用:數組

getServletMapping()方法:

這個方法將一個或多個路徑映射到DispatcherServlet上。上面的例子中指定「/」,代表它是默認的Servlet,會處理進入應用的全部請求。mvc

getServletConfigClasses()方法:

該方法返回的配置類,由DispatcherServlet加載應用上下文時加載其中的Bean。也就是說咱們開發Web應用時,使用Java配置Bean的配置類,會放在該方法的返回數組中。app

getRootConfigClasses()方法:

一般在Spring Web應用中,包含Web組件的bean,如控制器、視圖解析器、處理器映射等由DispatcherServlet加載,而其餘如中間層和數據層的bean則交給另外一個應用上下文ContextLoaderListener加載。該方法就是指定哪些配置類由ContextLoaderListener加載。jsp

啓動SpringMVC

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後,就可使用SpringMVC了。編寫Controller和JSP視圖和普通的Java開發沒什麼區別。xml

相關文章
相關標籤/搜索