1. 스프링 IoC 컨테이너(Spring Inversion of Control Container)
- 스프링은 객체를 관리하는 컨테이너를 제공
- 컨테이너에 객체를 담아 두고 필요할 때 가져와서 사용
- 컨테이너 역할을 수행하는 인터페이스, BeanFactory와 ApplicationContext
1.1. BeanFactory 인터페이스 (org.springframework.beans.factory.BeanFactory)
- 빈 객체를 관리, 빈 객체관의 의존 관계를 설정
- 구현 클래스 : org.springframework.beans.factory.xml.XmlBeanFactory (외부 자원으로부터 설정 정보를 읽어 와 빈 객체를 생성)
- org.springframework.core.io.Resource 인터페이스를 사용하여 다양한 종류의 자원을 동일한 방식으로 표현
- 특정 Resource로부터 설정 정보를 읽어와 XmlBeanFactory 객체를 생성한 뒤 getBean() 메서드를 이용하여 빈을 가져와 사용
- BeanFactory 객체 생성
Resource resource = new FileSystemResource("xml 설정파일 경로포함이름");
XmlBeanFactory factory = new XmlBeanFactory(resource);
클래스명 abc = (클래스명) factory.getBean("xml 설정파일내에 클래스 bean 객체 id명");
- Resource 구현 클래스
클래스 | 설명 |
org.springframework.core.io.FileSystemResource | 파일 시스템의 특정 파일로 부터 정보를 읽어 온다. |
org.springframework.core.io.InputStreamResource | InputStream으로부터 정보를 읽어 온다. |
org.springframework.core.io.ClassPathResource | 클래스패스에 있는 자원으로부터 정보를 읽어 온다. |
org.springframework.core.io.UrlResource | 특정 URL로부터 정보를 읽어 온다. |
org.springframework.web.context.support.ServletContextResource | 웹 어플리케이션의 루트 디렉터리를 기준으로 지정한 경로에 위치한 자원으로부터 정보를 읽어 온다. |
1.2. ApplicationContext 인터페이스 (org.springframework.context.ApplicationContext)
- BeanFactory 인터페이스를 상속받은 하위 인터페이스
- 빈 관리기능 외에 추가기능 제공(빈 객체 라이프 사이클, 파일과 같은 자원 처리 추상화, 메시지 지원 및 국제화 지원, 이벤트 지원, XML 스키마 확장을 통한 편리한 설정)
- 구현 클래스 : org.springframework.context.support.ClassPathXmlApplicationContext (클래스패스에 위치한 XML 파일로부터 설정 정보를 로딩)
- 구현 클래스 : org.springframework.context.support.FileSystemXmlApplicationContext (파일 시스템에 위치한 XML 파일로부터 설정 정보를 로딩)
- 구현 클래스 : org.springframework.web.context.support.XmlWebApplicationContext (웹 어플리케이션에 위치한 XML 파일로부터 설정 정보를 로딩)
- ApplicationContext 객체 생성
ApplicationContext context = new ClassPathXmlApplicationContext("xml 설정파일 경로포함이름");
클래스명 abc = (클래스명) context.getBean("xml 설정파일내에 클래스 bean 객체 id명");
ApplicationContext context = new ClassPathXmlApplicationContext("xml 설정파일 경로포함이름", "xml 설정파일 경로포함이름", . . .);
클래스명 abc = (클래스명) context.getBean("xml 설정파일내에 클래스 bean 객체 id명");
1.3. WebApplicationContext 인터페이스 (org.springframework.web.context.webApplicationContext)
- 웹 어플리케이션을 위한 ApplicationContext
- 하나의 웹 어플리케이션 마다 한개 이상의 WebApplicationContext를 가질 수 있음
- 개발자가 직접 XmlWebApplicationContext 객체를 생성하는 경우는 드뭄
- 구현 클래스 : ApplicationContext 와 같음
'Web > Spring' 카테고리의 다른 글
스프링(Spring) DI(Dependency Injection) - #2 (0) | 2013.11.02 |
---|---|
스프링(Spring) DI(Dependency Injection) - #1 (0) | 2013.10.30 |
스프링(Spring) 파일 다운로드(File Download) (6) | 2013.10.23 |
스프링(Spring) 파일 업로드(File Upload) (10) | 2013.10.23 |
스프링 프레임워크(Spring Framework) (0) | 2013.10.17 |