반응형
DI란 의존관계 주입을 의미
※Dependency Injection의 줄임말
객체가 다른 객체를 사용하기 위하여 본인 스스로 다른 객체를 생성하는것이 아닌 외부로부터 주입 받는 것을 의미
의존관계 주입의 방법에는 몇가지가 있다. ( 미리 말하자면 생성자 주입을 권고한다. )
- 생성자 주입
- 필드 주입
- setter 주입
@Component
class OrderServiceImpe{
private DiscountPolicy discountPolicy = new RateDiscountPolicy();
}
위 코드의 경우가 본인 스스로가 다른 객체를 사용하기 위하여 객체를 생성한 것이다.
new RateDispolicy();
@Component
class OrderServiceImpl{
private DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(DiscountPolicy discountPolicy){
this.discountPolicy = discountPolicy;
}
}
위 코드의 경우는 생성자를 통해서 생성이 되는 시점에 스프링 빈으로 등록된 스프링 빈인 discountPolicy가 매개변수로들어오면서 필드에 저장이 된다.
이 경우가 DI라고 한다.
생성자 위에 @Autowired라는 어노테이션을 썼는데 의존관계 자동 주입에서 자세하게 다루고있다.
반응형
'공부 > 과거 자료' 카테고리의 다른 글
[Java] 클래스메서드, 인스턴스메서드 (0) | 2022.07.14 |
---|---|
[Spring] 의존관계 자동 주입 (0) | 2022.07.14 |
[Spring] ComponentScan (0) | 2022.07.14 |
[Spring] 싱글톤 (0) | 2022.07.13 |
[Spring] @Configuration, @Bean, Application (0) | 2022.07.13 |