TIL: [Spring] 의존성 자동 주입 @autowired

DI란?

DI란, Dependency Injection의 앞글자만 따온 글자로서 의존성 주입이라는 단어로 Spring에서 쓰인다.

DI를 하려면, 직접 의존성을 주입할 대상 Bean을 지정해주거나, Spring이 알맞은 의존 객체를 찾아 주입해주는 의존성 자동 주입 방법이 있다.

  1. 의존성 주입 대상에 @autowired 어노테이션을 사용한다.
  2. XML 설정에 <context:annotation-config />설정을 추가한다.

    @autowired 어노테이션

    org.springframework.beans.factory.annotation

의존관계를 자동설정할 때 사용, 타입을 이용하여 의존하는 객체를 삽입해준다. 해당 타입의 빈객체가 존재하지 않거나, 2개 이상 존재할 경우 스프링은 예외를 발생시킨다.

@Autowired를 적용할 때 같은 타입의 빈이 2개 이상 존재하게 되면 예외가 발생하는데, 이럴 때 @Qualifier를 사용하면 동일한 타입의 Bean 중 특정 Bean을 사용하도록 하여 문제를 해결할 수 있다.