Spring

[Spring] WebApplicationInitializer.java & ServletContextListener.java

줘니(•̀ᴗ•́)و 2024. 3. 22. 12:13
728x90

 

 

 

* WebApplicationInitializer.java

 

: Spring Framework에서 제공하는 인터페이스로 Spring 웹 애플리케이션을 설정하는 파일.

web.xml 파일 대신에 자바 코드를 사용하여 서블릿 컨텍스트를 설정한다. 애플리케이션의 서블릿 컨텍스트를 초기화하고 설정하는 메소드를 제공하며, DispatcherServlet을 설정하거나 Spring Security를 구성하거나 기타 필요한 서블릿 컨텍스트 구성 작업을 수행한다.

 

 

 

public class MyWebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
    
    	// webServletContextListener 설정
        servletContext.addListener(new webServletContextListener());
        
        // dispatcher servlet 등록
        XmlWebApplicationContext xmlWebApplicationContext = new XmlWebApplicationContext();
		xmlWebApplicationContext.setConfigLocation("/*.xml");
		ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(xmlWebApplicationContext));
		dispatcher.addMapping("/");
		dispatcher.setLoadOnStartup(1);
        
        // 멀티파트 필터 등 각종 필터 설정 등
        MultipartFilter springMultipartFilter = new MultipartFilter();
		springMultipartFilter.setMultipartResolverBeanName("multipartResolver");
		FilterRegistration.Dynamic multipartFilter = servletContext.addFilter("springMultipartFilter", springMultipartFilter);
		multipartFilter.addMappingForUrlPatterns(null, false, "*.do");
    }

 

 

onStartup 메소드에서 서블릿 컨텍스트를 설정하고 DispatcherServlet을 등록한다.

로그인 필터, 멀티파트 필터, 쿠키 필터 등 필요한 필터를 설정하고 사용할 수 있다.

 

 

 

* ServletContextListener.java

 

: 웹 애플리케이션에서 발생하는 이벤트를 수신하고 처리할 수 있는 인터페이스.

웹 애플리케이션의 생명주기 이벤트를 감지하고 그에 따른 작업을 수행할 수 있다.

주요 메소드는 contextInitialized, contextDestroyed.

 

 

1. contextInitialized

: 웹 애플리케이션이 초기화될 때 호출된다. 초기화 작업, 리소스 로드, 애플리케이션의 상태를 설정하는 작업을 수행한다.

 

2. contextDestroyed

: 웹 애플리케이션이 종료될 때 호출된다. 리소스 정리, 연결 닫기, 애플리케이션 상태를 저장하는 작업을 수행한다.

 

 

 

 

728x90