스프링이 생성하는 객체를 빈(Bean)객체라고 부름
@Bean 애노테이션을 붙이면 해당 메서드가 생성한 객체를 스프링이 관리하는 빈 객체로 등록.
Bean 애노테이션을 붙인 메서드는 객체를 생성하고 초기화해야한다.
Appcontext를 읽어와 사용하는 Main class
Bean 객체는 싱글톤으로 보임. 항상 싱글톤으로 생성되는것인가 ?!
=> 별도 설정없으면 스프링은 한개의 빈 객체만 생성
스프링의 객체를 생성하고 초기화 하는 기능은 ApplicationContext라는 인터페이스에 정의되어 있고 AnnotationConfigApplicationContext은 구현체 중 하나, xml,groovy(?)로 객체 생성/초기화 하는 클래도 존재한다.
xml을 통해 설정하면 컴파일없이 빈 설정 정보를 변경할 수 있는 장점이 있다.
프로젝트의 resources 폴더 밑에 appConfig.xml 생성
이런 식
최상위에는 BeanFactory interface
ApplicationContext or BeanFactory를 container
Bean 객체의 생성, 초기화, 보관, 제거 등을 관리