• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

의존관계 자동 주입 강의 관련 질문

23.07.25 20:52 작성 조회수 280

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
의존관계 자동 주입 강의에서 수정자 주입 부분 설명하실때 setMemberRepository 와 setDiscountPolicy 메서드에 print문 작성하고 테스트 돌리면 set메서드를 호출하지 않았는데 어떻게 print문도 출력이 되는건가요??

OrderServiceImpl 을 빈으로 등록할때 거깄는 메서드까지 다 호출하는건가요??

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.07.26

안녕하세요. 황지호님, 공식 서포터즈 y2gcoder입니다.

https://www.inflearn.com/questions/952517/%EC%88%98%EC%A0%95%EC%9E%90-%EC%A3%BC%EC%9E%85

위에서 해주신 질문의 답변을 이해하셨다는 가정 하에 덧붙여서 설명을 드리겠습니다 :)

해당 빈을 사용할 때 수정자 메서드에 의존관계 주입을 위해 @Autowired를 붙여놨습니다. 그 말은 스프링에서 의존관계 주입을 자동으로 할 때 이 @Autowired가 붙은 수정자 메서드를 스프링 컨테이너에서 알아서 사용해서 의존관계를 주입해준다는 말과 같습니다. 그래서 스프링 컨테이너가 자동으로 해당 수정자 메서드를 실행하기 때문에, 메서드 내에 있는 print 문도 같이 실행하게 됩니다!

감사합니다.

황지호님의 프로필

황지호

질문자

2023.07.26

@Autowired 를 사용하면 단순히 스프링 컨테이너가 객체를 주입만 해주는게 아니라 해당 메서드도 실행하신다는 건가요??

y2gcoder님의 프로필

y2gcoder

2023.07.26

주입하기 위해서 해당 메서드를 실행한다고 이해해주시는 게 맞습니다. 해당 메서드를 실행하기 때문에 주입도 되고, 메서드 내에 있는 print 문도 실행되는 것입니다.