말 그대로 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 의미한다 == 제어의 흐름을 바꾼다
기존
1.객체생성
2.의존성 객체 생성
클래스내부에 생성
3.의존성 객체 메소드 호출
↓
Spring1.객체생성
2.의존성 객체 주입
스스로 만드는 것이 아니라 제어권을 스프링에 넘겨 스프링이 만들어 놓은 객체를 주입한다.
3.의존성 객체 메소드 호출
스프링이 모든 의존성 객체를 스프링이 실행될 대 다 만들어주고 필요한곳에 주입시켜줌으로써 Bean들은 jsp에서의 싱글톤 패턴의 특징을 갖는다
객체를 직접 생성하는 것이 아니라
외부에서 생성한 후 주입시켜 주는 방식 - pom.xml<context:component-scan base-package="com.itbank.service" /> <context:component-scan base-package="com.itbank.mail"/> <context:component-scan base-package="com.itbank.chat"/> <mybatis-spring:scan base-package="com.itbank.model" />
스프링에서는 객체를 Bean이라고 부르며, 프로젝트가 실행될때 사용자가 Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업을 자동적으로 수행해주는데 객체가 생성되는 곳을 스프링에서는 Bean 컨테이너라고 부른다.