Programming/Spring

[Spring] 스프링 빈 조회

Supreme_YS 2022. 2. 7. 10:56

스프링 빈을 조회하는 다양한 방법에 대해 코드로 살펴보자.

스프링 빈 조회 - 기본
스프링 빈 조회 - 동일한 타입이 둘 이상
스프링 빈 조회 - 상속관계 조회시

* BeanFactory

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

스프링 빈을 관리하고 조회하는 역할을 담당한다.

getBean() 메서드를 제공한다.

 

* ApplicationContext 

BeanFactory의 기능을 모두 상속받아서 사용한다.

 

ApplicationContext가 BeanFactory를 상속받아서 사용한다면 그 둘의 차이에 대해 알아보자.

ApplicationContext는 BeanFactory에서 제공하는 빈 관리, 조회 기능 뿐만 아니라 어플리케이션 개발에 필요한 부가 기능들을 제공한다. -> 국제화 기능, 환경 변수, 이벤트, 리소스 조회 등등!

 

즉, ApplicationContext  = BeanFactory + a 라고 보면 된다. BeanFactory나 ApplicationContext를 스프링 컨테이너라고 함!

 

물론, 위의 예제는 애노테이션 기반으로 자바 코드 설정을 사용했지만, xml 형식으로도 스프링 빈을 설정할 수 있다!

 

그럼 여기에서 생기는 의문점이 있어야 한다!

 

스프링은 xml도 지원하고, 애노테이션도 지원하고..이처럼 다양한 설정 형식을 어떻게 지원하는 것일까?

마치 매개변수의 타입에 따라 동작이 달라지는 오버로딩처럼 동작하는 무언가가 있는 것일까?

 

다음 포스팅에..