다음 예제에서 구성 클래스의 정의를 찾을 수 있다. person() 메서드를 살펴보자. 이제 Parrot 타입의 매개변수를 받고 해당 매개변수의 참조를 반환된 사람의 속성으로 설정했다. 메서드를 호출할 때 스프링은 컨텍스트에서 앵무새 빈을 찾아 그 값을 person() 메서드의 매개변수에 주입해야 한다는 것을 알고 있다.
예제 3-4 메서드의 매개변수를 사용하여 빈 의존성 주입하기
@Configuration
public class ProjectConfig {
@Bean
public Parrot parrot() {
Parrot p = new Parrot();
p.setName("Koko");
return p;
}
@Bean
public Person person(Parrot parrot) { ← 스프링은 이 매개변수에 앵무새 빈을 주입한다.
Person p = new Person();
p.setName("Ella");
p.setParrot(parrot);
return p;
}
}