본문 바로가기

SpringFramework Core - I. IoC 컨테이너/2. 컨테이너 개관

2. 컨테이너 개관

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-basics

 

 

org.springframework.context.ApplicationContext 인터페이스는 스프링 IoC 컨테이너를 대표한다.

그리고 bean들의 인스턴스화, 설정, 조립을 책임진다. 컨테이너는 설정 메타데이터를 통해 어떤 객체를 인스턴스화하고 설정하고 조립할지에 대해 org.springframework.context.ApplicationContext 인터페이스는 스프링 IoC 컨테이너를 대표한다.

 

그리고 bean들의 인스턴스화, 설정, 조립을 책임진다. 컨테이너는 설정 메타데이터를 통해 어떤 객체를 인스턴스화하고 설정하고 조립할지에 대해 지시를 얻는다. 설정 메타데이터는 XML, 자바 어노테이션, 자바 코드로 대표된다. 설정 메타데이터는 애플리케이션을 구성하는 객체들을 표현할 수 있게 해주고, 그러한 객체들 사이의 수많은 의존성을 표현할 수 있게 해준다.

 

스프링은 ApplicationContext 인터페이스의 몇몇 구현체들을 지원한다. 독립형 애플리케이션에서는 ClassPathXmlApplicationContext 또는 FileSystemXmlApplicationContext 객체를 생성하는 것이 일반적이다. XML이 설정 메타데이터를 정의하는 전통적인 형식이 되어왔지만, 자바 어노테이션이나 메타데이터 형식의 코드를 통해서도 컨테이너에게 지시를 할 수 있다. 이때는 약간의 XML 설정을 선언적으로 제공하여 이 추가적인 메타데이터 형식들을 지원할 수 있도록 해야한다.

 

대부분의 애플리케이션에서, 명백한 유저의 코드는 스프링 IoC 컨테이너 인스턴스를 만들 필요가 없다. 예를 들어 웹 애플리케이션에서는, 애플리케이션 안에 있는 web.xml의 8줄짜리 웹 기술 XML 상용구들로도 충분하다.('웹 애플리케이션을 위한 편리한 ApplicationContext 인스턴스화'를 참고하라) 만약 Spring Tool Suite를 사용한다면 이런 상용 설정들을 몇 번의 클릭을 통해 쉽게 만들 수 있다.

 

다음 다이어그램은 스프링 작동 방식을 고차원적으로 보여준다. 애플리케이션의 클래스들은 설정 메타데이터들과 결합한다. 그래서 ApplicationContext가 생성되고 초기화되면, 완전히 설정이 완료되고 실행이 가능한 시스템 또는 애플리케이션을 얻게 된다.

그림 1. 스프링 IoC 컨테이너