인터페이스이며, 스프링 빈 설정 메타 정보라고 한다.
스프링 컨테이너는 BeanDefinition에만 의존하기 때문에 xml로 config를 만들어도, java로 만들어도 상관이 없다.
@Bean 하나당 메타 정보가 생성된다.
스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다.
스프링은 다양한 형태의 설정 정보를 BeanDefinition으로 추상화 해서 사용한다.
스프링 빈을 만드는법은 다음 두 가지가 있다.
1. 직접 스프링 빈 등록(xml)
2. 팩토리 빈 사용(java)