public class WebInit implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { //项目启动则执行 : //前端控制器 //对比xml配置,配置在web.xml中的 /* * <servlet> * <servlet-name>dispatcherServlet</servlet-name> * <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> * <init-param> * <param-name>contextConfigLocation</param-name> * <param-value>/WEB-INF/classes/application.xml</param-value> * </init-param> * <load-on-startup>1</load-on-startup> * </servlet> * <servlet-mapping> * <servlet-name>dispatherServlet</servlet-name> * <url-pattern>*.do</url-pattern> * </servlet-mapping> * */ //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的监听器 /*<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> */ container.addListener(new ContextLoaderListener(rootContext)); } }
@Configuration // this class contains bean definitions @EnableWebMvc // same as <mvc:annotation-driven /> @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; } }