본문 바로가기

건승하고있어요/Spring framework

[Spring] 스프링1일차 - 스프링 컨테이너 및 설정파일

반응형

스프링 프레임워크에서는 자신이 관리할 클래스들이 등록된 XML설정 파일이 필요하다. 


스프링 설정파일 생성하기

해당 스프링 프로젝트 src/main/resources 소스폴더 선택, 마우스 오른쪽 버튼 클릭

new - other로 새로운 파일 생성하기

Spring폴더의 Spring Bean Configuration File 생성

파일 이름으로 "applicationContext.xml" 입력


스프링 컨테이너 종류


스프링에서는 BeanFactory와 이를 상속한 ApplicationContext 두 가지 유형의 컨테이너를 제공함

 BeanFactory 

스프링 설정파일에 등록된 <bean> 객체를 생성하고 관리하는 가장 기본적인 컨테이너 기능만 제공

컨테이너가 구동될 때 <bean>객체를 생성하는 것이 아닌 클라이언트의 요청에 의해서만 <bean>객체가 생성되는 지연로딩(Lazy Loading) 방식 사용

일반적인 스프링 프로젝트에서 사용할 일이 별로 없음

 ApplicationContext

BeanFactory가 제공하는 <bean> 객체관리 기능

트랜잭션 관리나 메세지 기반의 다국어 처리 등 다양한 기능 지원

컨테이너가 구동되는 시점에 <bean>에 등록된 클래스들을 객체 생성하는 즉시로딩(pre-loading)방식 사용

대부분의 스프링 프로젝트가 이용하는 컨테이너


ApplicationContext의 대표적 구현클래스


구현클래스 

 기능 

 GenericXmlApplicationContext 

 파일 시스템이나 클래스 경로에 있는 XML 설정 파일을 로딩하여 구동하는 컨테이너 

 XmlWebApplicationContext  

 웹 기반의 스프링 애플리케이션을 개발할 때 사용하는 컨테이너 


활용 예)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package polymorphism;
 
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
 
public class TVUser {
    public static void main(String[] args) {
        //1.Spring 컨테이너 구동
        AbstractApplicationContext factory = new GenericXmlApplicationContext("applicationContext.xml");
 
        //2.Spring 컨터네이너로부터 필요한 객체 요청 
        TV tv = (TV)factory.getBean("tv");
        tv.powerOn();
        tv.volumeDown();
        tv.volumeUp();
        tv.powerOff();
        
        factory.close();
    }
 
}
 
cs



반응형