인프런 커뮤니티 질문&답변

13months님의 프로필 이미지
13months

작성한 질문수

스프링 핵심 원리 - 기본편

스프링 빈 설정 메타 정보 - BeanDefinition

스프링 빈을 만드는 방법에 대해 질문드립니다.

작성

·

254

2

xml코드나 자바 코드를 읽어서 BeanDefinition을 만듭니다.
 
강의에서는 만들어진 BeanDefinition을 스프링 빈으로 등록할 때 두 가지 방법이 있다고 언급했는데 ..
 
직접 등록하는 방법이 있고 자바Config파일을 사용해 BeanFactory를 통해 등록하는 방법이 있다고 하셨습니다.
 
그런데 자바Config파일은 BeanDefinition을 만들 때 사용된거 아닌가요?
자바Config파일이 BeanDefinition을 만들 때 사용됐으면 빈을 만들 때도 자바Config파일이 사용되는건가요?
 
마찬가지로, xml파일을 BeanDefinition을 만들 때 사용했으면 빈을 만들 때도 xml파일이 사용되는건가요?
 
BeanDefinition을 만드는 작업과 스프링 빈을 만드는 작업이 굳이 분리해 설명하시는 이유를 잘 모르겠습니다.
 
 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. waysoleward01님

BeanDefinition은 추상화된 개념입니다. XML을 사용하든 자바Config를 사용하든 결과적으로 BeanDefinition을 만들게 되면 스프링 빈으로 등록할 수 있게 되는 것이지요.

이렇게 분리하면 좋은 이유가 미래에 새로운 방식이 생기더라도 BeanDefinition과 스프링 컨테이너 부분은 변경하지 않아도 된다는 장점이 있습니다.

실제로 스프링이 XML을 사용하다가 자바Config를 도입하게 되었을 때도 이런 부분 덕분에 스프링 내부 구현을 거의 변경하지 않았다고 합니다.

감사합니다.

13months님의 프로필 이미지
13months
질문자

답변 정말 감사합니다.

13months님의 프로필 이미지
13months

작성한 질문수

질문하기