• 다음 세 가지 방식 중 하나를 사용하여 두 빈 간 관계를 설정할 수 있다.
▪ 빈을 생성하는 메서드에서 다른 빈을 생성하는 @Bean 애너테이션된 메서드를 직접 참조한다. 스프링은 컨텍스트에서 사용자가 빈을 참조한다는 것을 알고 있으며, 빈이 이미 있을 때는 동일한 메서드를 다시 호출하여 다른 인스턴스를 생성하지 않는 대신 컨텍스트에서 기존 빈에 대한 참조를 반환한다.
▪ @Bean 애너테이션된 메서드에 매개변수를 정의한다. 스프링은 이 @Bean이 지정된 메서드에서 매개변수를 발견하면 해당 매개변수 타입의 빈을 컨텍스트에서 검색하고 해당 빈을 매개변수 값으로 전달한다.
▪ @Autowired 애너테이션을 사용하는 방식은 다음 세 가지다.
· 컨텍스트에서 빈을 주입하도록 스프링에 지시하려는 클래스의 필드에 @Autowired 애너테이션을 추가한다. 이 방식은 예제와 개념 증명(PoC)에서 자주 사용된다.
· 빈을 생성하기 위해 스프링이 호출할 생성자에 @Autowired 애너테이션을 추가한다. 스프링은 컨텍스트에 있는 다른 빈을 생성자의 매개변수로 주입한다. 이 방식은 실제 코드에서 가장 많이 사용된다.
· 스프링이 컨텍스트에서 빈을 주입하려는 속성의 setter에 @Autowired 애너테이션을 추가한다. 이 방식은 프로덕션 수준의 코드에서는 자주 사용되지 않는다.