[Spring] DI 란

골드곽
|2022. 7. 13. 23:55
반응형

 

DI란 의존관계 주입을 의미

※Dependency Injection의 줄임말

객체가 다른 객체를 사용하기 위하여 본인 스스로 다른 객체를 생성하는것이 아닌 외부로부터 주입 받는 것을 의미

의존관계 주입의 방법에는 몇가지가 있다. ( 미리 말하자면 생성자 주입을 권고한다. )

  1. 생성자 주입
  2. 필드 주입
  3. 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