반응형
스프링 4.x 버전에서
이중화 , 세션 시간설정 등 JavaConfig 로 해결 되지 않는 설정 사항 Xml 과 같이 사용하는 방법
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.security.web.session.HttpSessionEventPublisher;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.request.RequestContextListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.servlet.DispatcherServlet;
public class WebApplicationInitializerConfiguration implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(...class);
context.setServletContext(container);
container.addListener(new RequestContextListener());
container.addListener(new HttpSessionEventPublisher());
DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
dispatcherServlet.setDetectAllHandlerAdapters(true);
dispatcherServlet.setDetectAllHandlerExceptionResolvers(true);
dispatcherServlet.setDetectAllHandlerMappings(true);
dispatcherServlet.setDetectAllViewResolvers(true);
dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);
// Use XML Setting
dispatcherServlet.setContextConfigLocation("/WEB-INF/web.xml");
ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", dispatcherServlet);
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
FilterRegistration.Dynamic encodingFilter = container.addFilter("encoding-filter", new CharacterEncodingFilter());
encodingFilter.setInitParameter("encoding", "UTF-8");
encodingFilter.setInitParameter("forceEncoding", "true");
encodingFilter.addMappingForUrlPatterns(null, true, "/*");
FilterRegistration.Dynamic hiddenMethodFilter = container.addFilter("hiddenHttpMethodFilter", new HiddenHttpMethodFilter());
hiddenMethodFilter.addMappingForUrlPatterns(null ,true, "/*");
}
DispatcherServlet 에 setContextConfigLocation 으로 XML을 로드 가능.
Xml 의 경우 필요한 부분만 작성 하면 됨.
300
반응형
'프로그래밍 > Spring' 카테고리의 다른 글
| Eclipse Gradle JRE version set (0) | 2018.02.28 |
|---|---|
| Spring Project .gitignore (0) | 2018.01.31 |
| Spring [JSTL, HTML tag] - BASE Tag 설정 (0) | 2014.11.20 |
| Spring, JAVA - iText 페이지 사이즈 (0) | 2013.12.09 |
| Spring 3.2.5 릴리즈 Change Log (0) | 2013.11.08 |