web.xml和applicationContext中的配置都是用java代码的方式实现
1.创建webInitlizer类(对应的是web.xml)实现WebApplicationInitlizer接口,重写onstartup方法。
package cx.study.SpringMVC; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration.Dynamic; public class WebInitlizer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext cxf= new AnnotationConfigWebApplicationContext(); cxf.register(MyMvcConfig.class); cxf.setServletContext(servletContext); Dynamic servlet=servletContext.addServlet("dispatcher",new DispatcherServlet(cxf)); servlet.setLoadOnStartup(1); servlet.addMapping("/"); } }
2.创建MyMvcConfig类,继承WebMvcConfigurerAdapter
package cx.study.SpringMVC; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration @EnableWebMvc @ComponentScan("cx.study.SpringMVC") public class MyMvcConfig extends WebMvcConfigurerAdapter { @Bean //视图解析器 public InternalResourceViewResolver viewResolver(){ InternalResourceViewResolver viewResolver= new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); viewResolver.setViewClass(JstlView.class); return viewResolver; }
}
3.controller
@Controller public class UploadController { @RequestMapping("/") public String index(){ return "index"; }