@Autowired on a method

Spring Framework를 사용하면서 가장 많이 사용하는 어노테이션중에 하나인 @Autowired. @Autowired를 사용할 때, Field, Constructor, Setter  메쏘드에 많이 사용해왔습니다. 그런데 다음과 같은 코드를 보았습니다.

@Autowired
public void configGlobal(AuthenticationManagerBuilder auth) {
……..
}

보다시피 @Autowired가 선언된 곳은 Field, Constructor, Setter 메쏘드가 아닙니다. JavaDoc을 보니 다음과 같이 되어 있네요

Marks a constructor, field, setter method or config method as to be autowired by Spring’s dependency injection facilities.

@Autowired를 config method에 사용할 수 있습니다. 위의 코드에서 configureGlobal() 이라는 이름은 중요하지 않습니다. Spring Bean을 매개변수로 받는 모든 메쏘드에 사용할 수 있습니다. 그렇지만 대부분 매개 변수로 전달받은 Spring Bean의 설정에 사용된다고 볼 수 있습니다. 그리고 Setter 메쏘드는 단지 위의 특별한 경우라고 보면 됩니다.