본문 바로가기
프로그래밍/Spring

Spring 4.x Mix JavaConfig and XML

by 판데스 2017. 1. 20.
반응형

스프링 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