반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

스프링 컨테이너로 통합 본문

반응형

결론 및 요약

서블릿 컨테이너의 초기화 작업을 스프링 컨테이너의 초기화 과정에 통합하는 방법을 다뤘습니다. 이전에는 서블릿 컨테이너와 스프링 컨테이너의 초기화 작업이 별도로 이루어졌으나, 이번에는 스프링 컨테이너가 자동으로 서블릿 컨테이너를 초기화하도록 코드 구조를 변경했습니다.

주요 내용 요약

  1. 두 파트로 나뉘었던 초기화 작업:

    • 첫 번째 파트는 스프링 컨테이너(SpringContainer) 초기화 및 Bean 등록 작업.
    • 두 번째 파트는 서블릿 컨테이너(Servlet Container) 초기화 및 DispatcherServlet 등록 작업.

    이제 이 두 작업을 하나로 통합하여 스프링 컨테이너가 초기화되는 과정에서 서블릿 컨테이너의 초기화 작업이 자동으로 이루어지도록 설정했습니다.

  2. Spring의 onRefresh 메소드 활용:

    • 스프링 컨테이너의 초기화 과정은 refresh 메소드를 통해 이루어지며, 이 과정에서 추가적인 작업을 수행할 수 있는 Hook 메소드onRefresh를 사용했습니다.
    • 이를 위해 익명 클래스를 사용하여, 새로운 클래스를 생성하지 않고 기존의 GenericWebApplicationContext 클래스를 확장하여 서블릿 초기화 작업을 onRefresh 메소드에 포함시켰습니다.
  3. 익명 클래스와 this 참조:

    • 익명 클래스를 활용하여 새로운 클래스를 정의하지 않고도 메소드를 오버라이딩하는 방식을 사용했습니다.
    • this 키워드를 사용하여 ApplicationContext를 참조하고, 이를 서블릿 초기화 과정에서 활용할 수 있도록 했습니다.
  4. 전체적인 구조 변경의 의의:

    • 스프링 컨테이너의 초기화 과정에 서블릿 초기화 작업을 포함시킴으로써 코드의 일관성과 통일성을 높였고, 이를 통해 스프링 부트의 자동 설정 기능과 유사한 구조로 코드를 간결하게 만들었습니다.
    • 스프링 컨테이너가 애플리케이션의 라이프사이클 전반을 관리할 수 있도록 구조를 개선한 것이 핵심입니다.

결론:

스프링 컨테이너 초기화 과정에 서블릿 컨테이너 초기화 작업을 포함시키는 방법을 배웠습니다. 이로 인해 코드의 일관성이 높아졌고, 서블릿 및 스프링 컨테이너를 별도로 관리할 필요 없이 스프링 컨테이너가 모든 것을 통합적으로 관리할 수 있게 되었습니다.

반응형
Comments