본문 바로가기

Spring이론

애플리케이션 컨텍스트의 동작방식

반응형

우선 ApplicationContext의 동작방식에 대해 알아보기 전에 용어를 먼저 정리해보겠습니다.

 

 

bean

- bean 또는 bean object는 spring이 IoC 방식으로 관리하는 object라는 뜻입니다.

  

bean factory

- spring의 IoC를 담당하는 핵심 컨테이너를 가리킨다. bean을 등록하고, 생성하고, 조회하고 돌려주고, 

그 외에 부가적인 bean을 관리하는 기능을 담당합니다. 보통은 이 bean factory를 바로 사용하지 않고 이를 확장한 애플리케이션 컨텍스트를 이용합니다. bean factory라고 붙여쓰면 bean factory가 구현하고 있는 가장 기본적인 인터페이스의 이름이 됩니다. 이 인터페이스에 getBean()과 같은 메소드가 정의되어 있습니다.

 

application context

- bean factory를 확장한 IoC 컨테이너다. bean을 등록하고 관리하는 기본적인 기능은 bean factory와 동일합니다. 여기에 spring이 제공하는 각종 부가 service를 추가로 제공합니다. bean factory라고 부를 때는 주로 bean의 생성과 제어의 관점에서 이야기하는 것이고, application context라고 할 때는 스프링이 제공하는 application 지원 기능을 모두 포함해서 이야기하는 것이라고 보면 됩니다. spring에서는 application context라는 용어를 bean factory보다 더 많이 사용합니다. ApplicationContext라고 적으면 application context가 구현해야 하는 기본 interface를 가리키는 것이기도 합니다.

ApplicationContext는 BeanFactory를 상속합니다..

 

설정정보/설정 메타정보

- 스프링의 설정정보란 애플리케이션 컨텍스트 또는 bean factory가 IoC를 적용하기 위해 사용하는 메타정보를 말합니다.

 

컨테이너(container) 또는  IoC 컨테이너

- IoC 방식으로 bean을 관리한다는 의미에서 application context나 bean factory를 컨테이너 또는 IoC 컨테이너라고도 합니다.

 

* annotation

- @Configuration이라는 annotation의 경우 spring이 bean factory를 위한 object 설정을 담당하는 class라고

  인식할 수 있게 합니다

- @Bean의 경우 object를 만들어 주는 method에 작성합니다.

 

 

설명에 필요한 용어를 정리했으니 이제부터 본격적으로 application context의 동작방식에 대해 알아보겠습니다.

 

토비의 스프링 참조

 

1. @Configuration이 붙은 DaoFactory는 이 application context가 활용하는 IoC설정 정보입니다.

 

2. application context는 DaoFactory class를 설정정보로 등록해두고

    @Bean이 붙은 method의 이름을 가져와  bean 목록을 만들어 둡니다.

 

3. client가 application context의 client가 application context의  getBean() method를 호출하면 

    자신의 bean 목록에서 요청한 이름이 있는지 찾고, 있다면 bean을 생성하는 method를 호출해서 

    object를 생성시킨 후 client에 돌려줍니다.

 

 

여기까지가 애플리케이션 컨텍스트의 동작방식에 대한 개념입니다.

토비의 스프링을 읽으며 중요한 개념이 생기면 바로 다음 글을 작성할 예정입니다.

 

 

*해당 글과 사진은 토비의 스프링을 참조하여 작성하였습니다.

 

 

반응형