@Autowired 애노테이션을 붙여서 종속성을 주입할 수 있는데 XML 기반 설정파일에서의 오토 와이어링 설정 보다 더 유연하고 확장성이 좋아졌습니다.

  • 일반 적인 setter 위에 붙일 수 있습니다.
  • 메소드의 이름이 굳이 setter 형식일 필요가 없습니다.
  • 필드와 생성자에도 붙일 수 있습니다.
public class SimpleMovieLister {

   @Autowired
   private MovieFinder movieFinder;

   public void setMovieFinder(MovieFinder movieFinder) {
       this.movieFinder = movieFinder;
   }

   public MovieFinder getMovieFinder() {
       return movieFinder;
   }

}

주의 할 것은 종속성을 주입할 후보자가 아무것도 없다면 에러가 발생한다는 것입니다. 즉 @Autowired 애노테이션이 붙은
메소드, 생성자, 필드의 경우 기본으로 필수 요소로 인식합니다. 이를 원치 않을 때는 다음과 같이 설정할 수 있습니다.

@Autowired(required = false)

Spring 2.1 M1에서는 해당 속성이 없습니다. Spring 2.1 M2 부터 지원하고 있습니다.

사용자 삽입 이미지
Spring 2.1 M2에서도 지원하고 있는 속성이 딱 한 개 입니다. 타입으로 종속성 주입할 대상을 찾습니다.