새소식

반응형
Java/Spring

Spring Context

  • -
반응형

Spring Context

Spring Context란 Bean의 확장 버전으로 Bean들을 포함하여 여러 기능을 가진 공간이라고 생각하면 편하다.

출처 : https://workshop-6349.tistory.com/entry/Spring-Spring-Context-%EC%84%A4%EB%AA%85

 

보통은 Spring 에서 web.xml에 컨텍스트 설정을 한다.

ContextLoaderListener (contextConfigLocation 을 사용한 root-context), DispatcherServlet(servlet-context) 등을 생성하게 된다.

 

ContextLoaderListener에 의해 contextConfigLocation에 설정된 xml파일들을 로드하여 RootApplicationContext를 생성하고 DispatcherServlet을 통해 WebApplicationContext를 생성하게 된다.

 

RootApplicationContext

최상위 ApplicationContext이다. WebApplicationContext의 부모 Context이며 자식에게 자신의 설정을 공유한다.

Context가 여러개의 Bean들을 포함한 여러 기능을 가진 공간이라고 했는데 RootApplicationContext에 설정된

Bean들은 모든 컨텍스트 공간에서 사용이 가능하다.

단, 자신의 자식인 WebApplicationContext의 설정에는 접근하지 못한다.

보통은 어플리케이션 모든곳에서 사용해야하는 Component-Scan, SpringSecurity 설정, DB설정 등을 설정한다.

 

WebApplicationContext

Servlet 단위으 ApplicationContext이다. RootApplicationContext의 자식 Context이며, 부모인 RootApplicationContext의

설정에 접근할 수 있다. 

 

아래의 이미지를 보게되면 빨간 블록안에는 ContextLoaderListener에 의해 RootApplicationContext가 생성된다.

contextConfigLocation에 설정된 파일들인 applicationContext.xml, security-context.xml 을 로드하여

RootApplicationContext가 생성된다.

해당 2개의 xml파일 설정들은 자식인 WebApplicationContext에서 접근 가능하다.

파란 블록안에 있는 DispatcherServlet 설정 파일들은 WebApplicationContext를 생성하게 된다.

파란 블록안의 mybatis와 같이 DB설정들은 RootApplicationContext에 설정하는게 좋다.

출처 : https://tlatmsrud.tistory.com/43

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.