springmvc纯注解配置
必须实现WebApplicationInitializer
接口,tomcat启动时,会调用onstart()
public class MyWebApplicationInitializer implements WebApplicationInitializer {
/*
* tomcat在初始化容器的时候回调用该方法
* @param servletContext
* @throws ServletException
*/
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext annotationConfigApplicationContext = new AnnotationConfigWebApplicationContext();
//使用注解形式配置springmvc
annotationConfigApplicationContext.register(SpringMvcConfig.class);
annotationConfigApplicationContext.refresh();
//配置springmvc的dispatcherServlet
DispatcherServlet servlet = new DispatcherServlet(annotationConfigApplicationContext);
ServletRegistration.Dynamic registration = servletContext.addServlet("app", servlet);
registration.setLoadOnStartup(1);
registration.addMapping("/");
}
}
使用java方式配置springmvc,只需要实现WebMvcConfigurer
接口,实现里面的方法即可
@Configuration
@ComponentScan(basePackages = "com.wl.web")
public class SpringMvcConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
}
}
springmvc和spring纯注解整合
public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
//spring配置
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{AppConfig.class};
}
//springmvc配置
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}