1、新建类initConfig,继承AbstractAnnotationConfigDispatcherServletInitializer,并重写getRootConfigClasses()、getServletConfigClasses()、getServletMappings()方法。
public class InitConfig extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override
protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{RootConfig.class};
} @Override
protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebConfig.class};
} @Override
protected String[] getServletMappings() { return new String[]{"*.do"};
}
}
2、分别新建上图getRootConfigClasses()中的RootConfig.class和getServletConfigClasses()中的WebConfig.class方法
/**
* springmvc配置类
* @author yang
*/
@Configuration
@EnableWebMvc
@ComponentScan(basePackages={"com.ydzc.controller","com.ydzc.service.impl"})
public class WebConfig extends WebMvcConfigurerAdapter{ /**
* 配置springmvc视图
* @return
*/
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/pages/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
}
/**
* spring配置类
* @author yang
*/
@Configuration
@PropertySource("classpath:znzd.properties")
@ComponentScan(basePackages={"com.ydzc.controller","com.ydzc.service.impl"})
public class RootConfig {
/**
* 加载properties配置文件必配此bean
* @return
*/
@Bean
public static PropertySourcesPlaceholderConfigurer getPropertySourcesPlaceholderConfigurer(){
return new PropertySourcesPlaceholderConfigurer();
} }
即可。
如果需要创建额外的servlet、filter、listener
新建类,并继承WebApplicationInitializer,重写其中的onStartup方法
注册filter与之类似
需要注意的是,如果我们新建的filter的映射路径是在dispatcherServlet,则只需要重写initConfig类中的getServletFilters()方法