public class WebInit implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
//项目启动则执行 :
//前端控制器
//对比xml配置,配置在web.xml中的
/*
*
* dispatcherServlet
* org.springframework.web.servlet.DispatcherServlet
*
* contextConfigLocation
* /WEB-INF/classes/application.xml
*
* 1
*
*
* dispatherServlet
* *.do
*
* */
//javaConfig配置
//这句相当于控制器核心类
ServletRegistration.Dynamic dispatcherServletRegistration = container.addServlet("dispatcher", new DispatcherServlet());
//这句相当于配置服务器启动就加载servlet容器
dispatcherServletRegistration.setLoadOnStartup(1);
//这句相当于配置注解驱动
dispatcherServletRegistration.setInitParameter("contextClass", "org.springframework.web.context.support.AnnotationConfigWebApplicationContext");
//这句相当于加载springmvc核心配置文件
dispatcherServletRegistration.setInitParameter("contextConfigLocation", "com.mike.small.config.SpringMvcConfig");
//拦截所有url
dispatcherServletRegistration.addMapping("/");
//处理乱码过滤器
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
FilterRegistration.Dynamic characterEncodingFilterRegistration = container.addFilter("characterEncodingFilter", filter);
characterEncodingFilterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD), false, "/*");
//注解驱动类
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(SpringMvcConfig.class);
//这句相当于web.xml的监听器
/*
org.springframework.web.context.ContextLoaderListener
*/
container.addListener(new ContextLoaderListener(rootContext));
}
}
@Configuration // this class contains bean definitions
@EnableWebMvc // same as
@ComponentScan(basePackages = {"com.mike.small"})
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// declare static resources
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
// view resolver
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
return resolver;
}
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(104857600);
return multipartResolver;
}
}