스프링 프레임워크에서 자바빈을 로딩(인스턴스로 만든 후 바인딩)하는 데 있어 두가지 방법을 제공한다.
두 방법은 lazy biding, pre-loading 이다.
1. Lazy Binding
자바빈이 다른 메소드 또는 클래스의 요청에 의해 호출되는 시점에 로드되는 방법이다.
org.springframework.beans.factory.BeanFactory와 하위클래스들이 사용하는 방법으로 스프링 컨테이너에서는 관련빈을 호출되는 시점에 로딩한다.
아래 예를 보자.
BeanFactory factory = new XmlBeanFactory(
new InputStreamResource(
new FileInputStream("onj.xml")));
new InputStreamResource(
new FileInputStream("onj.xml")));
OrderManager orderManager = (OrderManager) factory.getBean("orderManager");
우선 위 예문의 경우 onj.xml이 메모리에 로딩되더라도 orderManager 빈은 인스턴스화 되지 않는다. 즉 getBaean("orderManager")하는 순간 메모리로 올라오는 것이다.
결국 getBean 메소드가 호출되는 시점에 할 일이 많아 지는 것이다.
2. Pre-Loading
컨테이너에서 XML 파일을 로딩하자 마자 정의된 자바빈들을 로딩하는 방법.
org.springframework.context.ApplicationContext가 수행한다.
//모든 싱글톤 자바빈들이 메모리로 로딩
ApplicationContext context =
new ClassPathXmlApplicationContext("onj.xml");
//필요한 빈을 리턴
OrderManager orderManager = (OrderManager) context.getBean("orderManager");
ApplicationContext context =
new ClassPathXmlApplicationContext("onj.xml");
//필요한 빈을 리턴
OrderManager orderManager = (OrderManager) context.getBean("orderManager");
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/18]Spring3.X, MyBatis, Hibernate실무과정
[11/18]iPhone 하이브리드 앱 개발 실무과정
[11/20]SQL초보에서실전전문가까지
[11/20]안드로이드개발자과정
[평일야간]
[11/13]C#,ASP.NET마스터
[11/19]iPhone하이브리드앱개발실무과정
[11/19]안드로이드개발자과정
[11/20]초보자를위한실전SQL
[11/21]JAVA&WEB프레임워자실무과정
[11/21]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[11/16]JAVA&WEB프레임워크실무과정
[11/16]웹퍼블리싱 마스터
[11/16]Spring3.X,MyBatis,Hibernate실무과정
[11/16]SQL초보에서전문가까지
[11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구
[11/23]C#,ASP.NET마스터
댓글 없음:
댓글 쓰기