스프링 컨테이너
스프링 컨테이너의 종류
BeanFactory
스프링 컨테이너 최상의 인터페이스다.
스프링 빈을 관리, 조회하는 역할을 담당한다.
getBean()을 비롯하여 다수의 기능을 제공한다.
ApplicationContext
BeanFactory를 상속받는 인터페이스다.
국제화기능, 환경변수, 어플리케이션 이벤트 등 다양한 추가 기능을 제공한다.
BeanFactory를 직접 사용할 일은 거의 없다. 부가기능이 포함된 ApplicationContext를 사용한다. BeanFactory나 ApplicationContext를 스프링 컨테이너라 한다
AnnotationConfigApplicationContext : ApplicationContext의 구현체다. 생성자 함수에 @Configuration 클래스를 넣으면 해당 클래스 + 클래스 내부에 @Bean으로 등록된 모든 함수를 스프링 빈으로 등록해 컨터이너로 관리한다.
빈 조회 (AnnotationConfigApplicationContext )
아래의 코드에서는 AnnotationConfigApplicationContext 의 내장 함수를 사용한다.
getBeanDefinitionNames() : 스프링 컨테이너의 모든 빈 이름을 가져온다.
getBean() : 빈 이름으로 빈 객체(인스턴스)를 가져온다.
(이름, 타입) 또는 (타입) 으로 빈을 가져올수 있다.
동일한 타입이 둘 이상이라면 오류가 발생한다.
getBeansOfType() : 해당 타입의 모든 빈을 가져온다.
부모 타입으로 조회시, 자식 타입도 모두 조회 가능하다. 따라서 Object로 조회하면 모든 스프링 빈을 조회한다.
'공부 > springboot' 카테고리의 다른 글
(6)빈 자동 등록과 자동 주입 (0) | 2023.05.15 |
---|---|
(5) 스프링 컨테이너 - 싱글톤 (0) | 2023.05.14 |
(2) 스프링을 활용한 DI (0) | 2023.05.10 |
(1) 스프링 사용하지 않고 OCP, DIP 지키기 (0) | 2023.05.10 |
좋은 객체지향이란? (0) | 2023.05.10 |