2016년 10월 13일 목요일

[자바강의,스프링강의,JPA강의★Topcredu★]#3.빈팩토리,어플리케이션컨텍스트

#3.빈팩토리,어플리케이션컨텍스트

BeanFactory, ApplicationContext
n  BeanFactory

스프링의 의존성 주입의 핵심 인터페이스
- Bean의 생성과 소멸 담당(의존성과 생명주기 및 관리 담당), 객체를 관리하는 고급 설정 기법 제공
- DI 지원 기능만 필요하다면 BeanFactory 인터페이스를 이용해 스프링 DI 컨테이너와 직접 연동할 수 있다이 경우 애플리케이션은 BeanFactory 인터페이스를 구현한 클래스의 인터페이스를 생성하고 이 인스턴스에 빈과 의존성 설정 정보를 저장해야 한다.
- BeanFactory를 프로그래밍적으로 설정할 수도 있지만 대부분 설정 파일을 통해 외부에서 설정하는 방식을 사용한다.
스프링에서 기본적으로 제공하는 두개의 메인 BeanFactory BeanDefinitionRegistry를 구현하고 있다. PropertiesBeanDefinitionReader는 프로퍼티 파일에서 Bean정의를 읽고 XmlBeanDefinition Reader XML 파일에서 Bean정의를 읽는다.

n  ApplicationContext

- BeanFactory의 모든 기능 제공(BeanFactory 인터페이스를 상속)
권장하는 방식으로 스프링 DI 뿐 아니라 트랜잭션, AOP 서비스국제화를 위한 메시지 소스애플리케이션 이벤트 처리
- Spring Framework2.5 이상부터 ApplicationContext 설정시 자바 어노테이션을 지원
- XML ? Annotation 방식
  XML 설정 방식을 쓰면 모든 설정을 자바코드로 부터 외부 XML에 둠
  어노테이션 방식의 경우 자바코드 내에서 DI 설정을 정의
 둘 동시에 사용되는 경우 XML 설정이 우선
  주로 데이터소스트랜잭션매니저, JMX, JMS커넥션팩터리등 애플리케이션
인프라스트럭처에는 XML 파일에 저장하고 DI 설정은 어노테이션에서 정의.
- Context 시작 시 모든 Singleton Bean을 미리 로딩(preloading) 시킴-> 초기에 설정 및 환경에 대한 에러 발견 가능함
다수의 ApplicationContext 구현 클래스 제공다양한 Resource 로딩 방법 제공
 (XmlWebApplicationContext,FileSystemXmlApplicationContext,ClassPathXmlApplicationContext)
- Spring AOP기능메시지 자원 핸들링이벤트 위임웹 어플리케이션에서 사용하기 위한 WebApplicationContext와 같은 특정 어플리케이션 컨텍스트를 이용한 통합과 같은 다른 기능을 추가 제공한다

댓글 없음:

댓글 쓰기