Hyunebee

스프링의 핵심 원리 이해 - 스프링 컨테이너와 스프링 빈 본문

Spring

스프링의 핵심 원리 이해 - 스프링 컨테이너와 스프링 빈

Hyunebee 2022. 1. 4. 22:51

스프링 컨테이너는 @Configuration붙은 것은 구성 정보로 사용한다.

@Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다.

@Bean에 적힌 메서드의 명으로 컨테이너에 등록한다. 등록된 빈은 applicationContext.getBean()으로 찾아서 사용할 수 있다. 

 

ApplicationContext는 인터페이스 이며 보통 스프링 컨테이너라고 한다.

 

우리는  new 키워드를 사용해서 AppConfig.class를 구성정보로 지정해서 사용한다. 

 

Spring Container에서 생성된 빈들은 서로의 의존관계를 설정한다.

 

스프링 빈 조회 - 기본

getBean(빈이름, 타입)

getBean(타입) if 조회 대상이 빈에 없으면 예외(NoSuchBeanDefinitionException)를 발생

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

getBeansOfType() -  해당 타입의 모든 빈을 조회할 수 있다.

또는 빈의 이름을 입력하여 부르는 방법도 있다. 

 

스프링 빈 조회 - 상속 관계

부모타입을 조회하면 자식 타입도 함께 조회한다.

 

 

BeanFactory와 ApplicationContext

BeanFactory는 스프링 컨테이너의 최상위 인터페이스이다.

대부분의 기능을 제공한다.

 

그렇다면 BeanFactory와 ApplicationContext의 차이는 무엇일까?

일단 ApplicationContext는 BeanFactory의 모든 기능을 상속받아서 제공할 수 있다. 이외로

1.메시지소스를 활용한 국제화 기능

2.환경변수

3.애플리케이션 이벤트

4.편리한 리소스 조회

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8