스프링 빈(Spring Bean)
- 스프링에서 애플리케이션의 중추(backbone)가 되고, 스프링 IoC 컨테이너에 의해 관리되는 객체(objects)를 빈(beans)이라고 부름. [1]
- 빈은 인스턴스화하고, 결집된 객체이며, 스프링 IoC 컨테이너에 의해 관리됨.
- 빈은 애플리케이션의 수많은 객체 중 하나임.
- 빈은 컨테이너에 의해 사용되는 설정 메타데이터(configuration metadata) 안에 빈과 빈 사이의 의존성이 반영됨.
개요
스프링 IoC 컨테이너는 하나 이상의 빈을 관리함.
이러한 빈은 컨테이너에 제공한 설정 메타데이터로 생성됨. (예. XML 기반의 설정 메타데이터에서 있는 <bean/> 정의)
컨테이너 내부에서 이러한 빈 정의는 (다른 정보를 포함하는) BeanDefinition 객체로 나타내고, 다음 메타데이터를 포함하고 있음.
- 패키지를 포함한(package-qualified) 클래스명 : 일반적으로 빈의 실제 구현 클래스가 정의됨.
- 빈의 행동에 대한 설정 요소. 컨테이너에서 빈이 어떻게 동작해야 하는가에 대한 상태(범위, 라이프사이클 콜백 등)
- 빈이 동작하는 데 필요한 다른 빈들에 대한 참조. 이러한 참조를 협력자(collaborators) 또는 의존성(dependencies)이라도 함.
- 새로 생성된 객체에 설정해야 하는 그 외 설정값. 예를 들어 커넥션 풀을 관리하는 빈에서 사용해야 하는 커넥션의 수나 풀의 용량 제한 등임.
이 메타 데이터는 각각의 빈을 정의하는 프로퍼티 세트로 변환됨.
참고
빈 정의 프로퍼티에 대해서는 아래 소스를 참고하자.
빈 정의
프로퍼티 | 설명 |
---|---|
class | |
name | |
scope | |
constructor arguments | |
properties | |
autowiring mode | |
lazy-initialization mode | |
initialization method | |
destruction method |
[1] ^ http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-introduction