스프링은 BeanDefinition 으로 메타 정보를 추상화 한다. 스프링의 BeanDefinition 추상화를 쉽게 생각해보면, 역할과 구현을 개념적으로 나눈 것이라 할 수 있다. (스프링 컨테이너는 XML, 자바 코드에 관계 없이 BeanDefinition만 알면 된다.) BeanDefinition : 빈 설정 메타 정보 - @Bean, 당 각각 하나씩 메타 정보가 생성됨 - 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈 생성 BeanDefinition을 직접 생성해서 스프링 컨테이너에 등록할 수 도 있다. (실무에서는 거의 없다!) 스프링 빈을 만드는 2가지 방법이 있는데, 직접 등록하는 방법 factoryBean을 사용하여 등록하는 방법 (일반적인 자바 코드를 통해 등록하는 방법 이 있다.