일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- phonegap
- MySQL
- WebLogic
- Android
- Spring
- jQuery
- MFC
- Struts
- 가우스
- oracle
- 선택적조인
- sencha touch
- Eclipse
- ibsheet
- rowspan
- JDOM
- node.js
- appspresso
- jsr 296
- GPS
- Ajax
- PHP
- tomcat
- iBATIS
- dock
- Google Map
- 전자정부프레임워크
- PLSQL
- swingx
- JSON
- Today
- Total
Where The Streets Have No Name
Spring 설정 파일 로딩 본문
참고 : http://www.ibm.com/developerworks/kr/library/wa-spring1/
import org.springframework.context.support.ClassPathXmlApplicationContext;
.
.
.
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {
"springexample-creditaccount.xml"
});
CreateCreditCardAccountInterface creditCardAccount = (CreateCreditCardAccountInterface) appContext.getBean("createCreditCard");
import org.springframework.context.support.ClassPathXmlApplicationContext;
.
.
.
String[] configs = { "com/testcompamy/testpg/springexample-creditaccount.xml" };
ApplicationContext context = new ClassPathXmlApplicationContext(configs);
WriteTestService service = (WriteTestService) context.getBean("writeTestService");
service.write(new Test());
참고 : http://www.dbtool.co.kr/board/board_view.jsp?leftmenu=0&no=2554&topmenu=3
2. 애플리케이션 컨텍스트
표면적으로는 ApplicationContext는 BeanFactory와 상당히 비슷하다. 둘 다 빈을 로딩하고 빈들을 묶어주며, 요청에 따라 빈을 분배한다. 즉, ApplicationContext 인터페이스가 BeanFactory 인터페이스를 확장한 것이다. 또한 getBean() 메소드를 사용해 ApplicationContext 로부터 빈을 얻을 수 있다.
차이점은 빈 팩토리는 모든 빈을 늦게 로딩(lazy loading)하는데, 애플리케이션 컨텍스트는 컨텍스트를 시작시킬때 모든 싱클톤 빈을 미리 로딩(preloading)함으로써 그 빈이 필요할때 즉시 사용될수 있도록 보장해 준다. 즉, 빈이 생성되기를 기다릴 필요가 없다는 것이다.
하지만 모든 객체를 싱클톤으로 생성해 놓는다지만 객체가 많아지면 무거울꺼라는 생각이 든다. 해보지 않아서 추측임.
(싱클톤은 디자인패턴의 일종이다 스스로…. ^^)
ApplicationContext는 다음과 같은 추가기능을 제공한다.
-.국제화(I18N) 지원을 포함해 텍스트 메시지를 해석하는 수단 제공
-.이미지 등과 같은 자원을 로딩하는 범용적인 방법 제공
-.리스너로 등록되어있는 빈에 이벤트를 발생할 수 있음.
BeanFactory는 자원이 제약이 따르는 이동통신기기 같은 상황이 아니면 ApplicationContext를 사용한다고 한다.
ApplicationContext의 다양한 구현 클래스 중 일반적인 것
-.ClasspathXmlApplicationContext : 클래스 패스에 있는 XML 파일로부터 컨텍스트 정의를 로딩하며, 컨텍스트 정의를 클래스 패스에 있는 자원으로 취급한다.
-.FileSystemXmlApplicationContext : 파일 시스템에 있는 XML 파일로부터 컨텍스트 정의를 로딩한다.
-.XmlWebApplicationContext : 웹 애플리케이션에 포함되어있는 XML 파일로부터 컨텍스트 정의를 로딩한다.
예) ApplicationContext context = new FileSystemXmlApplicationContext("c:/foo.xml");
: 특정한 위치에서 foo.xml을 찾음.
ApplicationContext context = new ClassPathXmlApplicationContext("c:/foo.xml");
: 클래스 패스에 있는 foo.xml를 찾음.