Inversion of Control: 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 자체적으로 만드는 것이 아니라,스프링과 같은 장치로 부터 주입 받아 사용하는 방법을 말 함.
- 의존성의 역전을 말한다. 의존성을 자신이 직접 정의하는 것이 아닌 스프링이 만들어둔 장치(@Autorwire, @Resource등)를 이용하여 값을 받아서 사용하는 것.
- 여기서 의존성은 다른 클래스( example
class : AClass )나 인터페이스( example interface : AInter )와 상속 또는 구현의 관계에 있을때 이를 상속하거나 구현한 클래스(
example
class : BClass, CClass) 중 어떠한 클래스가 들어가나에 따라 달라지는 의존적인 관계를 의미한다.
ex)
class AClass{ }
interface AInter{ }
class BClass extends AClass implements AInter {
//to do method
}
class CClass extends AClass implements AInter {
//to do method
}
class Main{
static void main(string[] args){
AClass bClass = new BClass(); // AClass 에서 정의되어 상속되어진 오버라이드된 B의 메소드가 사용됨
AClass cClass = new CClass (); // AClass 에서 정의되어 상속되어진 오버라이드된 C의 메소드가 사용됨
AInter bInter = new BClass(); // AInter 에서 정의되어 구현되어진 오버라이드된 B의 메소드가 사용됨
AInter cInter = new CClass (); // AInter 에서 정의되어 구현되어진 오버라이드된 C의 메소드가 사용됨
}
}
- 위의 4가지 상황처럼 어떤 클래스로 구현이나 상속되어지느냐에 따라 같은 메소드를 호출하더라도 다른 상황이 연출되는데 이를 의존성이라 한다.
- 위 상황에서 저러한 상황의 연출을 사용자가 직접 구현하는게 아닌 스프링에서 제공하는 장치를 사용하는것이 스프링의 IoC이다..
'프레임워크 > 스프링' 카테고리의 다른 글
Spring_내용설명_02) Spring Framework의 Bean과 Container (0) | 2019.05.21 |
---|---|
토비의 스프링 용어 정리 (0) | 2018.11.20 |
[토비의 스프링] 1장 정리 (0) | 2018.11.11 |