프로그램을 구동하는데 필요한 객체 생성, 변경 등의 관리를 개발자가 아닌 프로그램을 구동하는 컨테이너에서 직접 관리하는 것을 말한다.
스프링은 IoC 구조를 통해 구동 시 필요한 객체의 생성부터 생명주기까지 해당 객체에 대한 관리를 직접 수행한다.

컨테이너란
Containers are packages of software that contain all of the necessary elements to run in any environment.
- 애플리케이션을 실행하기 위해 필요한 모든 요소를 포함하고있는 소프트웨어 패키지
- 애플리케이션의 실행에 필요한 자원을 격리하여 관리함
스프링 프레임워크에서 객체를 생성 및 관리하는 컨테이너를 IoC컨테이너(=스프링 컨테이너)라고 함
스프링에서 관리하는 객체를 'Bean(빈)' 이라 하고, 해당 빈들을 관리한다는 의미로 컨테이너를 'Bean Factroy'라고 한다.
<property> 태그를 사용<bean id="객체 이름" class="클래스 풀네임"
<property name="이름" value="값" />
<property name="이름" ref="값" />
</bean>
name 속성 : Class에서 선언한 필드 변수의 이름
value 속성 : 단순 값 또는 Bean이 아닌 객체를 주입할 때 사용
ref 속성 : Bean 이름을 이용해 주입할 Bean을 찾음
<bean id="student" class="com.kh.spring.person.model.vo.Student">
<property name="name" value="홍길동" />
<property name="wwallet" ref="money" />
</bean>
<bean id="money" class="com.kh.spring.wallet.model.vo.Wallet" />
<constructor-arg> 태그를 사용<bean id="불러 올 객체" class="클래스 풀네임">
<constructor-arg index="번호" value="값" />
<constructor-arg name="이름" ref="값" />
</bean>
name 속성 : Class에서 선언한 필드 변수의 이름
value 속성 : 단순 값 또는 Bean이 아닌 객체를 주입할 때 사용
ref 속성 : Bean 이름을 이용해 주입할 Bean을 찾음
<bean id=“student" class=“com.kh.spring.person.model.vo.Student“>
<property name=“name” value=“홍길동”/>
<property name=“wallet” ref=“money”/>
</bean>
<bean id=“money” class=“com.kh.spring.wallet.model.vo.Wallet” />