본문 바로가기

SpringBoot

SpringBoot]스프링 컨테이너와 스프링 빈

 

1. 스프링 컨테이너

- 스프링컨테이너는 ApplicationContext객체이다.

- 일종의 인터페이스. 구현체가아님.

- XML기반으로 만들 수 있고 어노테이션 기반의 자바설정 클래스로 만들 수 있다.

- Bean객체를 담고있음. BeanFactory, ApplicationContext로 구분하여 스프링컨테이너를 일컫기도함.

어노테이션 기반의 스프링컨테이너
스프링 컨테이너의 의존성 주입과정.

스프링컨테이너 생성과정

1. new AnnotationApplicationContext(AppConfig.class)

-> 스프링 컨테이너가 생성. AppConfig클래스의 설정정보를 파라미터로 넘겨준다.

 

2. 스프링빈 등록

-> 어노테이션을 확인하여 스프링 빈 저장소에 매핑(저장) Key -> 메소드이름, Value -> 빈객체

* 일반적으로 빈이름은 메소드이름을 사용하되, @Bean(name="memberService2")처럼 지정해줄 수도 있다.

* 빈이름은 반드시 유일성을 만족해야함.

 

3. 스프링 빈의 의존관계를 설정한다.

스프링컨테이너는 설정정보를 참고하여 의존관계를 주입한다.

 

-정리

* 스프링은 빈을 설정하고, 의존관계를 주입하는 단계가 나뉘어져 있다. 앞선 단계들을 통해 스프링은 생성자 호출, 의존관계 주입을 한번에 처리할 수 있다(의존관계 자동 주입)