<aside> 📌 Spring container는 애플리케이션 빈의 생명 주기를 관리한다. Bean은 스프링 컨테이너에 의해 관리되는 객체들을 의미한다.
컨테이너란 컴포넌트 내에 또 다른 컴포넌트를 의미한다. 특별한 목적을 위해 구성된 환경인 것이다.
</aside>
ApplicationContext
의 구현으로 만들어지는 컨테이너이다.ApplicationConfigApplicationContext
클래스에 AppConfig
의 클래스 정보를 생성자로 넣어줌으로써 생성한다.BeanDefiniion
의 구현체인 AnnotatedGenericBeanDefition
을 생성하게 된다. 이 정보를 토대로 컨테이너가 빈을 생성하고 등록한다.@Bean
이 붙어있는 메서드들을 등록한다.ApplicationContext appContext = new ApplicationConfigApplicationContext(AppConfig.class);
ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml"); // xml 파일명을 classpath로 부터 찾아서 설정