아래는 스프링이 BeanDefinition 오브젝트를 만들 때 사용하는 메타정보이다.
필수여부와 default 값이 명시되어 있다.
- beanClassName : 빈 오브젝트의 클래스 이름. 빈 오브젝트는 이 클래스의 인스턴스가 된다.
- default : 없음. 필수항목
- id/name : 빈의 식별자
- default : 없음
- parentName : 빈 메타정보를 상속받을 부모 BeanDefinition의 이름. 빈의 메타정보는 계층구조로 상속할 수 있다.
- default : 없음.
- factoryBeanName : 팩토리 역할을 하는 빈을 이용해 빈 오브젝트를 생성하는 경우에 팩토리 빈의 이름을 지정한다.
- default : 없음.
- factoryMethodName : 다른 빈 또는 클래스의 메소드를 통해 빈 오브젝트를 생성하는 경우 그 메소드 이름을 지정한다.
- default : 없음.
- scope : 빈 오브젝트의 생명주기를 결정하는 스코프를 지정한다. 크게 싱글톤과 비싱글톤 스코프로 구분할 수 있다.
- default : 싱글톤.
- lazyInit : 빈 오브젝트의 생성을 최대한 지연할 것인지를 지정한다. 이 값이 true이면 컨테이너는 빈 오브젝트의 생성을 꼭 필요한 시점까지 미룬다.
- default : false
- dependsOn : 먼저 만들어져야 하는 빈을 지정할 수 있다. 빈 오브젝트의 생성 순서가 보장돼야 하는 경우 이용한다. 하나 이상의 빈 이름을 지정할 수 있다.
- default : 없음.
- autowireCandidate : 명시적인 설정이 없어도 미리 정해진 규칙을 가지고 자동으로 DI 후보를 결정하는 자동와이어링의 대상으로 포함시킬지의 여부
- default : true
- primary : 자동와이어링 작업 중에 DI 대상 후보가 여러 개가 발생하는 경우가 있다. 이때 최종 선택의 우선권을 부여할지 여부. primary가 지정된 빈이 없이 여러 개의 후보가 존재하면 자동와이어링 예외가 발생한다.
- default : false
- abstract : 메타정보 상속에만 사용할 추상 빈으로 만들지의 여부. 추상 빈이 되면 그 자체는 오브젝트가 생성되지 않고 다른 빈의 부모 빈으로만 사용된다.
- default : false
- autowireMode : 오토와이어링 전략. 이름,타입,생성자,자동인식 등의 방법이 있다.
- default : 없음.
- dependencyCheck : 프로퍼티 값 또는 레퍼런스가 모두 설정되어 있는지 검증하는 작업의 종류
- default : 체크하지 않음.
- initMethod : 빈이 생성되고 DI를 마친 뒤에 실행할 초기화 메소드의 이름
- default : 없음.
- destroyMethod : 빈의 생명주기가 다 돼서 제거하기 전에 호출할 메소드의 이름
- default : 없음.
- propertyValues : 프로퍼티의 이름과 설정 값 또는 레퍼런스. 수정자 메소드를 통한 DI작업에서 사용한다.
- default : 없음.
- constructorArgumentValues : 생성자의 이름과 설정 값 또는 레퍼런스. 생성자를 통한 DI작업에서 사용한다.
- default : 없음.
- annotationMetadata : 빈 클래스에 담긴 애노테이션과 그 애트리뷰트 값. 애노테이션을 이용하는 설정에서 활용한다.
- default : 없음.
필수로 들어가는 클래스명 외에는 모두 생략가능하며, 위에 선언된 default 값이 사용된다.
위의 속성 중 beanClassName과 id/name만 있으면 간단하게 빈 하나를 생성 가능하다.
'Spring' 카테고리의 다른 글
스프링 3.1 vol2 - 빈 등록 방법 (0) | 2017.02.15 |
---|---|
스프링3.1 vol2 - IoC 컨테이너 : 빈 팩토리와 애플리케이션 컨텍스트 (0) | 2017.02.14 |
서비스 추상화, 단일 책임 원칙 (0) | 2016.07.24 |
JDBC 트랜잭션 동기화 (1) | 2016.07.11 |
예외처리, 스프링 예외처리 (0) | 2016.07.05 |