본문 바로가기
Spring

Container Overview - 스프링 공식문서가 말하는 컨테이너

by irerin07 2024. 1. 22.
728x90
  • org.springframework.context.ApplicationContext 인터페이스는 스프링 IoC 컨테이너를 대표하며 빈의 인스턴스화, 설정 그리고 조합을 담당합니다.
  • 컨테이너는 Configuration metadata를 통해 어떤 오브젝트를 인스턴스화 하고, 설정하고, 조합할지의 정보를 받아옵니다.
  • Configuration Metadata는 XML, 자바 애노테이션 혹은 자바 코드를 통해 설정할 수 있습니다.
  • ApplicationContext 인터페이스의 구현체중 몇개는 스프링에서 기본적으로 제공이 됩니다.
  • 독립형 애플리케이션에서는 ClassPathXmlApplication Context나 FileSystemXmlApplicationContext를 많이 사용합니다.
  • XML을 기반으로 Configuration Metadata를 작성하는 것이 주된 방법이었지만, 자바 애노테이션이나 자바 코드를 사용할 수 있습니다.
  • 다음 다이어그램은 스프링의 동작 방식을 보여줍니다. 애플리케이션 클래스들이 Configuration Metadata와 함께 결합되고, ApplicationContext가 생성되고 초기화 되면 완전히 설정되고 실행 가능한 시스템 혹은 애플리케이션이 만들어지게 됩니다.

Configuration Metadata

  • 이전 다이어그램에서 보이듯이 스프링 IoC 컨테이너는 Configutaion Metadata를 사용하는데, 이 Configuration Metadata는 스프링 컨테이너에게 개발자가 개발중인 애플리케이션에 존재하는 객체(Objects)들을 어떤 방식으로 인스턴스화 하고, 설정하고, 조합할 것인지 알려주는 역할을 합니다.
  • Spring Configuration은 컨테이너가 관리해야 하는 하나 이상의 빈 정의를 가지고 있어야 합니다.
  • 이런 빈 정보들은 실제 애플리케이션을 구성하는 실제 객체(Objects)들과 대응되어야 합니다.
  • 보통 서비스 레이어 객체들이나 Persistence 레이어 객체들(Repository나 DAO등)을 정의합니다.
  • 세분화된 도메인 객체(find-grained domain objects)들은 컨테이너에서 정의하지 않는데, 이런 세분화된 도메인 객체를 생성하고 읽어들이는 것은 리포지토리나 비즈니스 로직의 책임이기 때문입니다.
728x90