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

둡둡·2022년 10월 9일
0

Spring-Basic

목록 보기
5/10

스프링 컨테이너

  • 일반적으로 ApplicationContext(interface)를 말함
    • 자바 설정 클래스(어노테이션 기반)
    • XML 기반

스프링 컨테이너 생성 과정

  • 스프링 컨테이너 생성(AppConfig.class)
  • 스프링 빈 등록
    • 빈 이름은 모두 달라야 함
  • 스프링 빈 의존관계 설정 준비
  • 스프링 빈 의존관계 설정 완료(DI 주입)

스프링 빈

  • getBeanDefinitionNames() : 등록된 모든 빈의 이름 조회
  • getBean("빈 이름", 타입) : 빈 이름으로 빈 객체(인스턴스) 조회(빈 이름 생략 가능)
  • getBeansOfType(타입) : 해당 타입의 빈 객체를 모두 조회
  • 상속 관계: 부모 타입으로 조회하면 모든 자식 타입도 함께 조회함
  • 부모 타입으로 조회 시 여러 자식이 있는 경우,
    • 빈 이름을 지정하여 조회
    • 특정 하위 타입(자식 객체의 타입)으로 조회

BeanFactory

  • 스프링 컨테이너의 최상위 인터페이스
  • 스프링 빈을 관리하고 조회하는 역할
  • getBean() 제공
  • 대부분 직접 사용하지 않고 ApplicationContext를 통해 사용함

ApplicationContext

  • BeanFactory 기능을 모두 상속받아 제공
  • 빈 관리 기능(BeanFactory) 외 MessageSource, EnviromentCapable 등 기타 부가 기능을 제공함

스프링 빈 설정 메타 정보 (BeanDefinition)

  • 스프링은 다양한 형식 설정이 가능함(자바, XML, Groovy 등)
    • 추상화된 메타 정보(BeanDefinition)를 기반으로 스프링 빈을 생성하기 때문에 가능
  • BeanClassName, FactoryBeanName, Scope 등의 정보를 가지고 있음

[출처] 스프링 핵심 원리 - 기본편, 김영한

profile
괴발개발라이프

0개의 댓글