다양한 의존관계 주입 방법

의존관계 주입은 크게 4가지 방법이 있습니다.

1. 생성자 주입

한 번 확인을 해봅시다.

public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
    System.out.println("memberRepository = " + memberRepository);
    System.out.println("discountPolicy = " + discountPolicy);
    this.memberRepository = memberRepository;
    this.discountPolicy = discountPolicy;
}

이렇게 코드를 작성하고 이전에 만들었던 AutoAppConfigTest를 돌려봅시다.

만약 생성자 호출이 될 때 스프링 컨테이너에서 스프링 빈이 들어오면 NULL이 아니라 값이 있을 것 입니다.

실행해봅니다.

Untitled

@Autowired가 없어도 값이 들어있는 것을 알 수 있습니다.

즉, 스프링 빈일 때 생성자가 1개라면 자동으로 @Autowired가 적용이 됩니다.

요즘에는 이렇게 생략해서 사용합니다.

2. 수정자 주입 (setter 주입)