작성
·
258
0
안녕하세요
request 스코프 강의를 듣다가 의문점이 생겨 질문드립니다
LogDemoController에서 LogDemoService와 MyLogger을 주입받는데 여기서 MyLogger은 @Component가 있어서 빈으로 등록되었다는 것을 알 수 있었습니다
그런데 LogDemoService에는 @Component를 붙여주지 않았습니다
그러면 LogDemoService는 빈으로 등록된 게 아닌가요?
빈으로 등록되지 않았다면 이건 주입이 일어나지 않은 걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. LogDemoController에서 LogDemoService와 MyLogger를 주입받는데요, MyLogger은 @Component 어노테이션이 붙어있어서 스프링 컨테이너에 의해 빈으로 등록되었을거에요. 하지만 LogDemoService에 @Component 어노테이션이 붙어있지 않았다면 스프링 컨테이너에 등록된 빈이 아니에요. 따라서 LogDemoService는 빈으로 등록되지 않았고 주입도 일어나지 않을 거예요. 이렇게 주입을 받고자 하는 객체가 빈으로 등록되지 않은 경우에는 주입이 실패하게 되요. 어떤 객체를 빈으로 등록해야 하는지에 대해서는 주입을 시도하는 엔티티 클래스에 @Autowired 또는 @Inject 어노테이션을 붙여주면 되요. 그러면 스프링이 알아서 해당하는 타입의 빈을 주입해줄 거예요. 이 부분을 유의해주세요! :)
답변해주셔서 감사합니다
그럼 결론적으로 LogDemoService는 빈으로 등록되지도 않았고 주입되지도 않은 건가요? 의존관계와 상관이 없는 객체인건가요?