FireDrago

[Spring] 스프링 컨테이너와 스프링 빈 본문

프로그래밍/Spring

[Spring] 스프링 컨테이너와 스프링 빈

화이용 2024. 1. 5. 14:33

 

다양한 형식을 지원하는 스프링 빈

 

스프링 컨테이너는 애너테이션 기반의 자바 코드로 빈을 생성하거나, xml 파일을 이용해서 빈을 생성한다.

자바코드를 이용한 스프링 빈 생성과 xml을 이용한 빈 생성

 

자바코드, xml 등 여러 형식으로 빈을 정의 할 수 있는 이유는 BeanDefinition 객체 덕분이다.

BeanDefinition 객체는 빈의 정보를 담고있는 객체로 빈마다 하나씩 생성된다.

AnnotatedBeanDefinitionReader 객체는 자바 코드를 읽어 BeanDefinition을 생성하고,

XmlBeanDefinitionReader 객체는 xml 파일을 읽고 BeanDefinition을 생성한다. 

ApplicationContext 구현체는 BeanDefinition 객체의 정보를 토대로 스프링 컨테이너에 빈을 생성한다.

 

java 코드와 xml로 스프링 컨테이너(ApplicationContext) 생성하는 코드
형식에 따라 BeanDefinition 객체 생성

 

스프링 컨테이너 

 

ApplicationContext 를 스프링 컨테이너로 이해하면 된다. 스프링 컨테이너는 스프링 빈이 생성되어 보관되는 곳이다.

ApplicationContext 는 인터페이스로서 BeanFactory (빈 최상위 인터페이스) , MessageSurce( 다국어 처리) , EnvironmentCapable ( 환경변수) 등을 상속받는다. 즉 BeanFactory 의 빈 관리기능 외에 여러 기능들이 추가되어있다.

 

 

이 글은 김영한님의 스프링 핵심 원리 - 기본편을 바탕으로 작성되었습니다.

'프로그래밍 > Spring' 카테고리의 다른 글

[Spring] 의존성 자동주입  (0) 2024.01.09
[Spring] 스프링 컨테이너와 싱글턴  (0) 2024.01.06
[Spring] 스프링 기본 원리  (0) 2024.01.04
[Spring] AOP  (0) 2024.01.02
[Spring] 스프링 의존관계 설정  (0) 2023.12.30