프레임워크/Spring

[Spring] Spring의 컨텍스트?

반응형

Chef Class

package org.zerock.sample;

import org.springframework.stereotype.Component;

import lombok.Data;

@Component
@Data
public class Chef {

}

Restaurant Class

package org.zerock.sample;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import lombok.Data;
import lombok.Setter;

@Component
@Data
public class Restaurant {
	
	@Setter(onMethod_ = @Autowired)
	private Chef chef;
}

-스프링 프레임워크가 시작되면 먼저 스프링이 사용하는 메모리 영역을 만들게 되는데 이를 컨텍스트(Context)라고 한다. 스프링에서는 ApplicationContext라는 이름의 객체가 만들어진다.

 

-스프링은 자신이 객체를 생성하고 관리해야 하는 객체들에 대한 설정이 필요하다.

이에 대한 설정이 root-context.xml 파일!

 

-root-context.xml에 설정되어 있는 <context:component-scan>태그의 내용을 통해서 'org.zerock.sample' 패키지를 스캔(scan)하기 시작!

 

-해당 패키지에 있는 클래스들 중에서 스프링이 사용하는 @Component라는 어노테이션이 존재하는 클래스의 인스턴스를 생성한다.

 

-Restaurant 객체는 Chef 객체가 필요하다는 어노테이션(@Autowired)설정이 있으므로, 스프링은 Chef 객체의 레퍼런스를 Restaurant 객체에 주입한다.

 

 

참고 : 코드로 배우는 스프링 웹 프로젝트

반응형