3.1. Introduction
이번 장에서는 Spring 프레임웤이 구현한 IoC에 관해 다룹니다. IoC는 Spring이 제공하는 여러 기능들에 가장 기본이 됩니다.

IoC 컨테이너의 기능은 BeanFactory와 ApplicationContext 인터페이스를 통해 제공되며 BeanFactory가 객체를 관리하기 위한 기본적인 기능을 제공하는 반면 ApplicationContext는 거기에 추가해서 보다 다양한 기능을 제공합니다.

BeanFactory와 ApplicationContext 인터페이스 비교

3.2. Basics - containers and beans
bean은 IoC container에 의해 관리 되는 객체를 말합니다. 이 둘에 대한 기본적인 내용들을 담고 있습니다.

http://whiteship.tistory.com/519

3.3. Dependencies
bean들 간의 종속성을 주입하는 방법에 대해 나와있습니다.
3.3. Dependencies


3.4. Bean scopes
종속성 뿐만 아니라 bean의 scope도 설정할 수 있습니다.
3.4. Bean scopes

3.5. Customizing the nature of a bean
bean 생명주기에 껴들어서 좀 더 bean의 설정을 취미에 맞게 바꿀수 있습니다.
3.5. Customizing the nature of a bean

3.6. Bean definition inheritance
bean 설정 파일간에 상속을 통해 bean 설정을 재사용할 수 있습니다.
3.6. Bean definition inheritance

3.7. Container extension points
Spring 프레임웤의 IoC 컴포넌트는 확장을 고려하여 설계했습니다.

3.7. Container extension points

3.8. The ApplicationContext
BeanFactory의 기본 기능에 ApplicationContext가 추가한 기능들에 대한 설명이 있습니다.

3.8. The ApplicationContext

3.9. Glue code and the evil singleton

The majority of the code inside an application is best written in a
DI style, where that code is served out of a Spring IoC container, has its own
dependencies supplied by the container when it is created, and is
completely unaware of the container.