• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

메소드 빈주입

23.03.01 23:11 작성 조회수 668

0

 안녕하세요 토비님 강의 잘듣고있습니다!

다름이 아니라 강의 내용중 메서드 파라미터에 빈을 주입 받아 사용하는 것에 궁금증이 생겨 질문드립니다.

일반 적으로 빈을 주입받아 사용할 때 @Autowired나 생성자 등으로 초기화를 해주었는데, 위의 코드의 매개변수는 그런 과정이 없이 바로 빈을 주입받는 것인가요 ?

 

 

답변 1

답변을 작성해보세요.

2

일반 빈 클래스에서 메소드 파라미터를 통해서 의존오브젝트를 주입 받으려면 @Autowired가 필요한 것이 맞습니다. 다만, 단일 생성자인 경우는 @Autowired를 생략해도 됩니다.

@Bean 메소드는 일반 빈 클래스의 생성자 주입과 동일한 방식을 지원합니다. 빈 생성을 위해서 의존 오브젝트가 필요하다는 전제가 @Bean 애노테이션을 통해서 드러나기 때문에, 빈 클래스의 생성자와 유사하게 의존 오브젝트 주입이 파라미터를 통해서 일어나는 것이 자연스럽기 때문에 그렇게 설계되었습니다.

관련된 설명은 레퍼런스 문서에 나와있습니다.

https://docs.spring.io/spring-framework/docs/6.0.x/reference/html/core.html#beans-java-dependencies