Spring

Spring / 스프링 컨테이너와 빈

Dear-J 2025. 3. 23. 05:18

스프링 컨테이너 생성

ApplicationContext : 스프링 컨테이너

>> 인터페이스

>> 애노테이션 기반의 자바 설정 클래스로 만들 수 있음

 

생성 과정

스프링 컨테이너 생성

new AnnotationConfigApplicationContext(AppConfig.class)

구성 정보를 지정해야함

>> AppConfig.class

 

스프링 빈 등록

파라미터로 넘어온 설정 클래스 정보를 사용해 스프링 빈 등록

 

스프링 빈 의존관계 설정

설정 정보를 참고해 의존관계 주입

 

스프링 빈 조회 -  기본

ac.getBean(빈이름, 타입)

ac.getBean(타입)

조회 대상 스프링 빈이 없으면 예외 발생

 

스프링 빈 조회 - 동일한 타입이 둘 이상

타입으로 조회시 같은 타입의 스프링 빈이 둘 이상이면 오류

>> 빈 이름 지정하자

 

ac.getBeansOfType()

>> 해당 타입의 모든 빈 조회

 

스프링 빈 조회 - 상속 관계

부모 타입으로 조회

>> 자식 타입도 함께 조회

 

자바 객체의 최고 부모인 Object 타입으로 조회

>> 모든 스프링 빈 조회

 

BeanFactory와 ApplicationContext

BeanFactory

스프링 컨테이너의 최상위 인터페이스

스프링 빈을 관리, 조회하는 역할

getBean() 제공

 

ApplicationContext

메세지소스를 활용한 국제화 기능

환경변수 : 로컬, 개발, 운영 등을 구분해서 처리

애플리케이션 이벤트 : 이벤트를 발행, 구독하는 모델 지원

편리한 리소스 조회 : 파일, 클래스패스, 외부 등에서 리소스 조회

 

스프링 빈 설정 메타 정보 - BeanDefinition

BeanDefinition 이라는 추상화

>> 역할과 구현을 개념적으로 나눔

 

 

 

 

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