※ 참조 : 프로 스프링 3 (위키북스)
http://book.naver.com/bookdb/book_detail.nhn?bid=7014516
○ 스프링의 의존성 주입 컨테이너의 핵심은 BeanFactory 인터페이스이다.
PropertiesBeanDefinitionReader는 프로퍼티 파일에서 빈 정의를 읽고, XmlBeanDefinitionReader는 XML 파일에서 빈 정의를 읽는다.
public class XmlConfigWithBeanFactory {
public static void main(String[] args) {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory);
rdr.loadBeanDefinitions(new FileSystemResource("src/main/resources/xmlBeanFactory.xml"));
Oracle oracle = factory.getBean("oracle", Oracle.class);
}
}
○ Applicationcontext
스프링에서 ApplicationContext 인터페이스는 BeanFactory를 상속한다.
DI 서비스 뿐만 아니라 트랜잭션, AOP서비스, 국제화를 위한 메시지 소스(i18n), 애플리케이션 이벤트 처리 등 다른 서비스도 함께 제공한다.
웹 컨테이너 환경에서는 ContextLoaderListner를 통한 부트스트랩도 지원한다.
○ 스프링 XML 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<!-- 스프링이 코드 기반에서 의존성 요구 조건을 스캔하게 함 -->
<context:annotation-config />
<!-- 스프링이 코드에서 지정된 패키지 아래에 있는 주입 가능한 빈을 모두 스캔하게 함 -->
<context:component-scan base-package="com.sptr.user" />
</beans:beans>