더북(TheBook)

BeanFactory 구성을 프로그래밍으로 할 수도 있지만, 구성 파일을 사용해 외부에서 구성하는 방법이 좀 더 일반적입니다. 스프링 내부에서 빈 구성은 BeanDefinition 인터페이스를 구현한 클래스의 인스턴스로 표현됩니다. 빈 구성에는 빈 자체에 대한 정보뿐만 아니라 의존하는 빈의 정보도 저장돼 있습니다. BeanDefinitionReader 인터페이스를 구현한 BeanFactory 구현 클래스에서는 PropertiesBeanDefinitionReaderXmlBeanDefinitionReader를 사용해 구성 파일에서 BeanDefinition 데이터를 읽을 수 있습니다. PropertiesBeanDefinitionReader는 프로퍼티 파일에서 빈 정의를 읽는 반면에 XmlBeanDefinitionReader는 XML 파일에서 빈 정의를 읽습니다.

그러므로 사용자는 BeanFactory 내에서 사용자 빈을 식별할 수 있습니다. 각 빈에 ID나 이름을 하나만 지정하거나, ID와 이름을 모두 지정할 수 있습니다. 빈은 ID나 이름없이(익명 빈이라고 불림) 인스턴스화 되거나 다른 빈의 내부 빈으로 인스턴스화 될 수도 있습니다. 각 빈마다 최소한 하나의 이름이 있지만 이름의 개수에는 제한이 없습니다. 여러 이름을 추가하려면 쉼표로 구분합니다. 첫 번째 이름을 제외한 나머지 모든 이름은 같은 빈에 대한 별칭(alias)으로 간주됩니다. 빈 ID나 이름을 사용해 BeanFactory에서 빈을 가져올 수 있고 의존성을 확립할 수 있습니다(즉, 빈 X가 빈 Y에 의존).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.