본문 바로가기
  • 실행력이 모든걸 결정한다
Spring Series/Spring Framework

[Spring] IoC 컨테이너를 통해 애플리케이션이 만들어지는 방식

by 김코더 김주역 2022. 6. 7.
반응형

 

1. 메타정보 리소스

- 설정 메타정보의 내용을 표현한 리소스를 말한다.

- 일반적으로 xml 파일이나 annotation같은 외부 리소스를 말한다.

- 성격, 관리 주체, 계층, 팀 등에 따라 여러 리소스 파일을 분리하여 하나의 컨텍스트에 등록할 수도 있다.

 

2. 메타정보 리더

- 메타정보 리소스를 읽는 오브젝트를 말한다.

- 일반적으로 BeanDefinitionReader 인터페이스 타입의 오브젝트를 사용한다.

 

3. 설정 메타정보

- Bean을 어떻게 만들고 어떻게 동작하게 할 것인가에 대한 정보다.

- 일반적으로 메타정보는 BeanDefinition 인터페이스 타입의 오브젝트에 담는다.

 

Bean 설정 정보 : BeanDefinition의 핵심 항목

더보기

※ 이미지는 https://title-developer.tistory.com/107 블로그에서 스캔본을 가져왔다.

 

4. POJO 클래스

- Plain Old Java Object의 약자로, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 객체지향적인 원리에 충실한 오브젝트를 말한다.

 

5. IoC 컨테이너(Application Context)

- Bean 팩토리이면서 엔터프라이즈 애플리케이션을 개발하는 데 필요한 다양한 컨테이너 기능을 추가한 것이다.

- 최초로 애플리케이션을 기동해주는 bean 하나를 서블릿에게 제공해준다.

※ 웹 애플리케이션 컨텍스트는 웹 애플리케이션이 시작됐을 때 생성되고, 서블릿은 웹 애플리케이션 컨텍스트에게 기동 역할을 해줄 bean을 요청해서 받아둔다.

- 일반적으로 웹 애플리케이션 레벨에서 하나, 서블릿 레벨에서 하나, 즉 2개의 컨테이너가 만들어진다. 웹 애플리케이션 레벨에 등록되는 (루트)컨텍스트가 서블릿 레벨의 컨텍스트들의 부모 컨텍스트가 된다.

※ 위와 같은 점을 이용하여 각 서블릿이 공유하게 되는 공통적인 bean들을 웹 애플리케이션 레벨의 컨텍스트에 등록하면 bean의 중복 생성을 방지할 수 있다.

- ApplicationContext 인터페이스는 BeanFactory 인터페이스를 상속한다.

 

6. Spring Application

- POJO 클래스와 설정 메타정보를 이용해 IoC 컨테이너가 만들어주는 오브젝트들의 조합

 

 

참고 자료: 토비의 스프링 3.1 vol.2

반응형

댓글