|
DI(Dependency Injection), 의존주입
의존관계에 있는 객체를 생성하지 않아도, 그 종속객체를 사용할 수 있는 것
의존관계에 있는 객체를 생성하지 않아도, 그 종속객체를 사용할 수 있는 것, 하나의 객체에서 다른 하나의 객체를 사용하는 관계
예를 들어 A 클래스 내에서 B 클래스를 사용한다면, A와 B는 의존관계에 있다고 할 수 있다. ('A가 B에 의존', B가 변한다면 A가 변하기 때문)
하기 참조
public class A {
/**
* new B();와 같이 객체를 생성해주어야 함
*/
B b = new B();
b.method1();
}
스프링에서는 아래와 같이 사용
public class A {
@Autowired
B b;
b.method1();
}
IoC(Inversion of Control), 제어의 역전
본래 B클래스의 생성자 호출 new B(); 의 제어권한은 B에게 있는데, B의 제어권한을 수동적으로 바꾸어,
프레임워크(컨테이너)에게 그 제어권한을 주는 것, 이렇게 하는 가장 큰 이유는 생성자 호출 뿐만 아니라,
생성된 객체의 생명주기 '전체'에 대한 권한, 관리를 프레임워크(컨테이너)에게 주어 개발자가 비즈니스 로직에만 집중할수 있게
|