강의 및 책 내용 정리/스프링 핵심원리 기본편

스프링 핵심 원리 기본편 - 스프링 컨테이너와 스프링 빈

소나무나무 2021. 6. 7. 20:53

Recall

스프링 컨테이너의 정의

 

ApplictionContext

BeanFactory

 

 

 

스프링 빈의 정의

 

 

ApplicationContext의 구현체

 

 

 

 

 

 

스프링 컨테이너 생성과정 4가지

 

구성정보

 

 

 

 

 

 

 

 

 

 

파라미터

 

설정 클래스 정보

 

 

 

 

빈 이름 등록하는 법

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notes

  • 스프링 컨테이너
    • 객체의(Bean) 생성, 관계, 사용, 생명 주기를 관리한다.
    • ApplictionContext를 스프링 컨테이너라고 한다.
    • @Configuration이 붙은 AppConfig를 설정(구성)정보로 사용한다.
    • @Bean이라고 적인 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다.
    • 스프링 컨테이너를 BeanFactory와 ApplicationContext로 구분하여 부르지만 BeanFactory를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext를 스프링 컨테이너라고 한다.
  • 스프링 빈
    • 스프링 컨테이너에 등록된 객체
    • @Bean이 붙은 메서드명을 스프링 빈의 이름으로 사용한다.
  • 스프링 컨테이너 생성
    //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
    • ApplicationContext는 스프링 컨테이너이자 인터페이스이다.
    • new AnnotationConfigApplicationContext(AppConfig.class); 는 ApplicationContext의 구현체이다.
  • 스프링 컨테이너 생성과정
    1. 스프링 컨테이너 등록
      • ApplicationContext의 구현체인 new AnnotationConfigApplicationContext(AppConfig.class);를 사용하여 스프링 컨테이너를 등록한다.
      • 스프링 컨테이너를 생성할 때 구성정보를 등록한다.
    1. 스프링 빈 등록
      • 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용하여 스프링 빈을 등록한다.(AppConfig.class)
      • 빈 이름은 항상 다른 이름으로 부여해야 한다. 같은 이름이면 다른 빈이 무시되거나, 기존 빈을 덮어버리는 오류가 발생한다.
    1. 스프링 빈 의존관계 설정 준비
    1. 스프링 빈 의존관계 설정 주입
      • 스프링 컨테이너는 설정정보를 참고하여 의존관계를 주입(DI)한다.

 

📌
SUMMARY: 스프링 컨테이너는 객체(Bean)의 생성, 관계, 주입, 생명주기를 관리하며 ApplictionContext로 생성한다. 스프링 컨테이너에 등록된 메서드를 스프링 빈이라고 한다.