스프링 빈 설정 메타데이터

초보개발·2021년 12월 10일
0

Spring

목록 보기
12/37

BeanDefinition

  • 스프링은 Bean에 관한 정보를 BeanDefinition으로 추상화 시켰기 때문에 다양한 설정 형식을 지원해 준다. (역할과 구현을 개념적으로 잘 나눈 것)
    • xml을 읽어 BeanDefinition을 만들거나, java로 BeanDefinition을 만들면 된다. (스프링 컨테이너는 java인지 xml인지 알 필요가 없고 BeanDefinition만 알면 된다)
  • 인터페이스 BeanDefinition은 빈 설정 메타 정보라 한다.
    • @Bean, 당 각각 하나씩 메타 정보가 생성됨
  • 스프링 컨테이너는 이 메타 정보를 바탕으로 스프링 빈을 생성한다.

BeanDefinition 구조

  • BeanClassName : 생성할 빈의 클래스 이름
  • factoryBeanName : 팩토리 역할의 빈을 사용할 경우(appConfig)
  • factoryMethodName : 빈을 생성할 팩토리 메서드 지정
  • Scope : 디폴트 값은 싱글톤
  • lazyInit : 스프링 컨테이너를 생성할 때 빈을 생성하는게 아니라 실제 빈을 사용할 때 까지 최대한 생성을 지연처리 하는지 여부
  • InitMethodName : 빈 생성, 의존관계를 적용후 호출되는 초기화 메서드 명
  • DestroyMethodName : 빈의 생명주기가 끝나서 제거하기 직전 호출되는 메서드 명
  • Constructor arguments, Properties : 의존관계 주입에서 사용

0개의 댓글