Spring/김영한 스프링 핵심원리 - 기본편

[섹션4-1] 스프링 컨테이너 생성하기

보름달빵 2024. 2. 6. 16:10

스프링 컨테이너 생성

 

ApplicationContext applicationContext= 
              new AnnotationConfigApplicationContext(AppConfig.class);

 

 

ApplicationContext

  •  스프링 컨테이너
  •  인터페이스

AnnotationConfig ApplicationContext

  • 이 클래스는  ApplicationContext 인터페이스의 구현체이다.
  • 어노테이션 기반의 자바 설정 클래스로  만들어진 스프링 컨테이너
AppConfig 클래스를 기반으로 스프링 컨테이너를 만들겠다는 의미이다. 

 

 

스프링 컨테이너 생성과정

  1. 스프링 컨테이너 생성하기

 

ApplicationContext applicationContext= new AnnotationConfigApplicationContext(AppConfig.class);

 

  • AppConfig 는 스프링 컨테이너의 설계도
  • 스프링 컨테이너는 설계도인 AppConfig 를 기반으로 빈 저장소를 구성한다.
  • 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로 만들 수 있다.
  •  이 경우 에노테이션 기반의 자바 설정 클래스를 기반으로 만들어진다,

 

 

 

2. 스프링 빈 등록

 

 

스프링 컨테이너는 설정 클래스의 정보(AppConfig) 를 통해서 @Bean으로 등록된  메서드를 호출하여 빈 객체를 생성한다. 

  • 빈 이름은 메서드의 이름을 사용한다
  • 빈 이름은 중복되어서는 안된다
  • 빈 이름을 직접 설정할 수 있다 ( @Bean(name=" 하고싶은 이름")) 

 

3. 의존관계 설정 - 준비

 

 

 

4. 의존관계 설정 - 완료

 

 

  • 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입한다.
  • 단순히 자바코드를 호출하는 것 같지만 , 차이가 존재한다. 이는 싱글톤 컨테이너를 배우면서 자세히 알아보자

 

※ 참고

스프링은 빈을 생성하고, 의존관계를 주입하는 단계가 나누어져 있다.

그런데 이렇게 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한번에 처리된다.

여기서는 이해를 돕기 위해 개념적으로 나누어 설명했다고 한다.

 

자세한 내용은  의존관계 자동 주입을 배울 때 자세히 알아보자