책책책/토비의 스프링 3.1

[Spring] 스프링 IoC컨테이너 ApplicationContext

Deveun 2021. 7. 1. 00:31

토비의 스프링 1장: 오브젝트와 의존관계

ApplicationContext

: 스프링의 가장 대표적인 오브젝트로 IoC를 적용하여 관리하는 모든 오브젝트에 대한 생성과 관계설정을 담당한다.

또한, 스프링의 각종 부가 서비스를 추가로 제공한다. (자동생성, 오브젝트 생성 후처리, 정보의 조합, 설정 방식의 다변화, 인터셉팅 등..)

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

 

기존의 오브젝트 팩토리와의 차이점으로, Factory는 직접 오브젝트를 생성하는데에 반해 ApplicationContext에서는 이 생성/연관관계정보를 설정정보(메타정보 configuration)를 통해 얻는다.

==> Factory 오브젝트가 추가됨에 따라 클라이언트가 알맞은 팩토리 클래스를 찾아 생성, 사용할 필요가 없다.

==> *싱글톤 레지스트리 (멀티스레드 환경 / 서버 환경에서 동작하는 애플리케이션의 경우, 다수의 클라이언트 요청에 유리.)

 

*싱글톤 레지스트리
: 평범한 자바 클래스를 싱글톤 방식으로 사용할 수 있도록 관리해주는 기능.

public의 생성자를 가질 수 있고, 직접 오브젝트를 생성할 수도 있는 등, 싱글톤 패턴의 한계나 객체지향 설계의 제약이 없음.

 

 

ApplicationContext의 동작원리

: XML 또는 자바코드에서 @Configuration이 붙은 Factory 클래스 설정정보를 통해 내부적으로 오브젝트를 생성하여 Bean에 주입시키고, Client는 getBean() 으로 원하는 오브젝트를 가져다 사용만 하면 된다.

아래 그림은 이전 게시글의 예제의 ApplicationContext의 동작원리이다.

(이전게시글 참고: 2021.06.05 - [책책책/토비의 스프링 3.1] - [Spring] 제어의 역전 (IoC: Inversion of Control))

 

ApplicationContext 동작방식

 

 

 

[참고서적] http://www.acornpub.co.kr/book/toby-spring3.1-vol1#spring3

 

토비의 스프링 3.1 Vol. 1 스프링의 이해와 원리

스프링의 핵심 프로그래밍 모델의 원리와 이에 적용된 다양한 디자인 패턴, 프로그래밍 기법의 이해를 돕는 책

www.acornpub.co.kr