스프링 컨테이너와 빈

Spring Container

스프링 프레임워크의 핵심이자 IoC의 주체객체의 생명 주기를 관리하고 의존 관계를 설정하는 역할

Spring Bean

스프링 컨테이너에 의해 관리되는 객체. 스프링 컨테이너에 등록되어 의존성 주입을 받는다.

ApplicationContext

ApplicationContext는 다양한 기능의 인터페이스를 상속받아 사용하고 환경 변수 설정, 메시지 국제화, 리소스 조회 등 다양한 부가 기능을 지원한다. AnnotationConfigApplicationContext는 그 구현 객체다.

public class Main {
		public static void main(String[] args) {
				//ApplicationContext = 스프링 컨테이너
				ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
		}
}

Untitled

스프링 컨테이너의 상속 계층도

@Configuration, @Bean

AppConfig는 빈등록 설정 클래스파일이다. 클래스 뿐만 아니라 .xml, .json 형식으로도 빈등록이 가능하다. @Configuration 어노테이션으로 빈을 등록한 설정 파일임을 명시해주고, @Bean 어노테이션으로 빈을 등록한다. 스프링 컨테이너가 해당 설정파일에 명시된대로 빈을 생성하고 의존 관계를 연결한다.