使用配置类和注解代替web.xml和SpringMVC``配置文件的功能。
    ·在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了
    AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自动发现它,并用它来配置Servlet上下文。

    1. public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    2. /**
    3. * 指定spring的配置类
    4. * @return
    5. */
    6. @Override
    7. protected Class<?>[] getRootConfigClasses() {
    8. return new Class[]{SpringConfig.class};
    9. }
    10. /**
    11. * 指定SpringMVC的配置类
    12. * @return
    13. */
    14. @Override
    15. protected Class<?>[] getServletConfigClasses() {
    16. return new Class[]{WebConfig.class};
    17. }
    18. /**
    19. * 指定DispatcherServlet的映射规则,即url-pattern
    20. * @return
    21. */
    22. @Override
    23. protected String[] getServletMappings() {
    24. return new String[]{"/"};
    25. }
    26. /**
    27. * 添加过滤器
    28. * @return
    29. */
    30. @Override
    31. protected Filter[] getServletFilters() {
    32. CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
    33. encodingFilter.setEncoding("UTF-8");
    34. encodingFilter.setForceRequestEncoding(true);
    35. HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
    36. return new Filter[]{encodingFilter, hiddenHttpMethodFilter};
    37. }