이제 독립 실행형 자바 애플리케이션에서 원하는 처리를 하기 위해 스프링의 BeanFactory를 초기화하고 oracle 빈을 가져오는 방법을 살펴보겠습니다. 코드는 다음과 같습니다.
예제 3-12 XmlConfigWithBeanFactory 클래스([[setter-injection]] XmlConfigWithBeanFactory.java)
package com.apress.prospring5.ch3; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.ClassPathResource; public class XmlConfigWithBeanFactory { public static void main(String... args) { DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory); rdr.loadBeanDefinitions(new ClassPathResource("spring/xml-bean-factory-config.xml")); Oracle oracle = (Oracle) factory.getBean("oracle"); System.out.println(oracle.defineMeaningOfLife()); } }
앞 예제 코드는 스프링이 제공하는 두 개의 주요 BeanFactory 구현체 중 하나인 DefaultListable BeanFactory를 사용하고 있으며, XmlBeanDefinitionReader를 사용해 XML 파일의 BeanDefinition 정보를 읽는 것을 볼 수 있습니다. BeanFactory 구현체를 생성하고 구성한 후에는 XML 파일에 구성한 대로 oracle이라는 빈 이름을 사용해 oracle 빈을 가져옵니다.