안녕하세요, 강의를 듣고 동작 방식에 대해 제가 이해하고 있는것이 맞는지 질문 드리고자 합니다.
어노테이션을 활용할 경우
1. 스프링 컨테이너가 동작할때 먼저 컴포넌트 스캔 진행
2. @Component 어노테이션이 달린 클래스를 찾아 빈으로 등록(Service, Controller, Repository 등)
3. @Autowired을 찾아 의존성 주입을 수행함
4. MemberController에 MemberService가 Autowired로 되어있으므로 컨테이너에에 빈으로 올라가있는 MemberService주입
5. MemberService에 Repository부분이 Autowired이므로 컨테이너에 빈으로 올라간 Repository 주입
springConfig를 통해 자바코드로 할 경우
1. 컴포넌트 스캔이 진행됨 @Configuration어노테이션에 @Component가 포함되어 있음
2. springConfig를 통해 MemberService, MemberRepository가 Bean으로 등록됨
3. MemberService에 return new MemberService(memberRepository());로 인해 MemberService와 MemberRepository는 의존성이 존재하고, MemberService에 MemberRepository를 주입해 줌
4. MemberController 등록
5. Autowired를 통해 memberService를 등록해야 함
6. 컨테이너에 MemberService 빈이 올라가 있으므로 그것을 등록, MemberService는 이미 3번에서 의존성이 주입되어 있으므로 Autowired가 필요없음
이 내용이 맞을까요?
감사합니다!