搭建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開發沒什麼區別。


TAG:程序員小新人學習 |