- Bean 정의 메타데이터를 읽어서, 객체 그래프를 구성/관리하는 런타임 인프라 - new와 같이 직접 인스턴스를 생성하지 않고, 컨테이너에 구성 정보(메타데이터)를 주면, 그 정보를 기반으로 객체를 생성한다. - 객체 생성 뿐만 아니라, 의존성을 주입하고, 인스턴스의 라이프사이클을 관리한다 - 필요하면 AOP, 트랜잭션 같은 부가기능을 끼워 넣는다 -...
BeanFactory
BeanFactory를 직접 쓸 일은 거의 없고, API 레벨에서 "스펙" 역학을 한다고 보면 됨ApplicationContext
BeanFactory를 상속해서 애플리케이션 레벨 기능을 잔뜩 얹은 것
@Configuration, @ComponentScan, @Eanble*등 자바 기반 구성ApplicationContext 계열을 쓴다고 생각하면 됨@Configuration 클래스, @Bean 메서드@ComponentScan 결과@Conditional), 프로필 (@Profile) 등getBean() 처리DisposableBean, @PreDestroy, destoryMethod 호출Bean 정의를 건드리는 후처리기${...} 치환@Configuration, @Bean, @ComponentScan 처리해서 BeanDefinition 추가@Autowired 처리@Transaction, @Async 등 어노테이션 처리스프링이 "단순 DI 컨테이너"를 넘어서 프레임워크가 된 구조가 보인다.