Bean을 관리하는 객체
싱글턴 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리한다.
이러한 기능 덕분에 싱글톤 패턴의 모든 단점을 해결하고 객체를 싱글톤으로 유지할 수 있다.
BeanFactory에 여러가지 컨테이너 기능을 추가한 ApplicationContext ~= Spring Container
스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조
스프링에서는 'ApplicationContext'가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 하는 구조
따라서 스프링을 사용하면 객체와 객체를 분리해서 생성하고, 이런 객체들을 엮는 작업을 하게 됩니다.(Wiring)
ApplicationContext가 관리하는 객체들을 Bean
이라고 칭하고, 빈과 빈 사이의 의존 관계를 처리하는 방식으로 XML, Annotation, Java 등 다양한 방식이 사용됩니다.