빈 또는 빈 오브젝트는 스프링이 IoC 방식으로 관리하는 오브젝트라는 뜻이다. 주의할 점은 스프링을 사용하는 어플리케이션에서 만들어지는 모든 오브젝트가 전부 빈은 아니다. 스프링이 직접 그 생성과 제어를 담당하는 오브젝트를 스프링 빈이라고 한다.
스프링이 빈을 직접 생성과 제어를 한다고 하였다. 스프링이 빈을 관리하기 위해 어떤 컨테이너를 가지고 있는데, 이 것을 스프링 컨테이너라고 한다. 또는 IoC 컨테이너, 어플리케이션 컨텍스트라고도 부른다.
스프링 컨테이너는 기본적으로 빈 팩토리로서 빈을 등록하고, 생성하고, 조회하고,, 등등 빈을 관리한다. 뿐만 아니라 빈 팩토리의 역할 외에 스프링이 제공하는 어플리케이션 지원 기능을 모두 포함한다. 예를 들면 이벤트 발행 및 구독 모델, 리소스 조회 편의성, 환경 변수 구분 기능, 다국적 언어 지원 등이 있다.
ApplicationContext
라 적으면 어플리케이션 컨텍스트가 구현해야하는 기본 인터페이스를 가리키는 것이기도 하다. ApplicationContext
는 BeanFactory
를 상속한다.
Reference
토비의 스프링 3.1 1.5.3 스프링 IoC의 용어 정리(Vol. 1, 101p)
스프링 컨테이너와 스프링 빈