Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

프로퍼티설명
class빈으로 만들 클래스
name식별자
scope빈의 범위
constructor arguments종속성 주입(생성자)
properties종속성 주입(Setter)
autowiring mode종속성 주입(자동주입)
lazy-initialization mode빈 생성을 늦춤(시작시가 아닌 첫 호출시)
initialization method빈이 생성되었을 때 호출하는 콜백 메서드
destruction method빈이 소멸되었을 때 호출하는 콜백 메서드

스프링 컨테이너 외부에서 생성한 객체 등록

ApplicationContext 구현체는 특정 빈을 생성하는 방법에 대한 정보가 들어있는 빈 정의 외에도 사용자가 컨테이너 외부에서 생성한 기존 객체의 등록을 허용함.

getBeanFactory() 메서드로 ApplicationContext의 BeanFactory에 접근해서 이러한 객체들을 등록함.

getBeanFactory() 메서드는 BeanFactory를 구현한 DefaultListableBeanFactory를 리턴함.

DefaultListableBeanFactory는 registerSingleton (..) 및 registerBeanDefinition (..) 메소드를 통해 이러한 등록을 지원함.

하지만 일반적인 애플리케이션은 메타데이터 빈 정의를 통해 정의된 빈으로만 동작함.

Warning
title주의
  • 빈 메터데이터와 수동으로 등록되는 싱글톤 인스턴스는 컨테이너가 정확히 추론할 수 있도록 자동 빈 설정(autowiring) 및 기타 인트로스펙션(introspection) 단계에서 가능한한 빨리 등록해야 함.
  • 기존 메터데이터와 기존 싱글톤 인스턴스를 재정의 하는 것은 어느정도 지원함.
  • 런타임 시에(팩토리에 대한 라이브 엑세스와 동시에) 새로운 빈의 등록은 공식적으로 지원하지 않으며, 빈 컨테이너에서 동시 접근 예외(concurrent access exceptions) 또는 불일치 상태를 유발할 수 있음.


...

Anchor
comment_01
comment_01
[1] ^ http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-introduction