스프링의 BeanDefinition
2022. 1. 14. 08:28
Spring
BeanDefinition이란? 단어 그대로 스프링 빈의 설정 메타 정보이다. 각 @Bean, 당 각 하나씩 메타 정보가 생성된다. 스프링 컨테이너는 이 메타 정보를 기반으로 스프링 빈을 생성한다. 어떻게 다양한 설정 방식을 지원 할까? 해당 글에서 빈 설정 방식을 자바 코드, xml 등 방식을 지원하는데 이게 가능한 이유가 BeanDefinition이라는 추상화가 있기 때문이다. BeanDefinition은 역할(interface)가 되는 것이고, AppConfig.class, appConfig.xml, appConfig.xxx 등과 같은 것들이 구현이 되는 것이다. 결국 스프링 컨테이너는 BeanDefinition만 바라 보기 때문에 가능한 것이다. 구조를 그림으로 보면 아래와 같다. 그림 출처 김영..
스프링의 자바 코드와 XML 설정 방식
2022. 1. 14. 08:25
Spring
해당 글을 보면 AppConfig라는 자바 코드로 빈 등록을 해서 사용을 했다. 하지만 스프링은 자바 코드 뿐 아니라 xml 방식을 지원하고 있고, 커스텀 방식도 지원하고 있다. 간단하게 알아 보자. 아래 그림은 ApplicationContext의 구현체들이다. AnnotationConfigApplicationContext는 AppConfig라는 자바 코드에서 애노테이션 기반으로 빈을 등록할 때 사용 했던 구현체이다. 이번에 알아볼 내용은 xml방식으로 빈을 등록하는 방법이다. 그림 출처 김영한의 스프링 핵심 원리 - 기본편 xml 방식으로 빈 등록하기 기존 자바 코드 설정 방식 살펴 보기 아래와 같이 자바 코드로 빈을 등록한 코드이다. AnnotationConfigApplicationContext(Ap..