web.xml을 java로 구현하는 방법에 대해서 이전에 WebApplicationInitializer 를 이용하는 방법을 올렸습니다.
이외에 Spring 3.2 부터는 AbstractAnnotationConfigDispatcherServletInitializer 를 이용하여 구현하는 방법이 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public class WebXmlConfig extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{SpringConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } @Override public void onStartup(ServletContext servletContext) throws ServletException { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); MultipartFilter multipartFilter = new MultipartFilter(); multipartFilter.setMultipartResolverBeanName("multipartResolver"); XssEscapeServletFilter xssEscapeServletFilter = new XssEscapeServletFilter(); servletContext.addFilter("encodingFilter", characterEncodingFilter).addMappingForUrlPatterns(null, false, "/*"); servletContext.addFilter("multipartFilter", multipartFilter).addMappingForUrlPatterns(null, false, "/*"); servletContext.addFilter("xssEscapeServletFilter", xssEscapeServletFilter).addMappingForUrlPatterns(null, false, "/*"); super.onStartup(servletContext); } } |
Filter를 사용하기 위해 onStartup을 Override한다면 이를 사용하지 않는 방법도 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class WebXmlConfig extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{SpringConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebConfig.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } @Override protected Filter[] getServletFilters() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); MultipartFilter multipartFilter = new MultipartFilter(); multipartFilter.setMultipartResolverBeanName("multipartResolver"); XssEscapeServletFilter xssEscapeServletFilter = new XssEscapeServletFilter(); return new Filter[]{characterEncodingFilter, multipartFilter, xssEscapeServletFilter}; } } |