인프런 커뮤니티 질문&답변

한갓진 오후의 간술맨님의 프로필 이미지
한갓진 오후의 간술맨

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

컴포넌트 스캔과 자동 의존관계 설정

intellij가 error를 잡지 못합니다....

작성

·

392

0

[질문 내용]

아래 스크린샷과 같이 intellij 에서 @Service @Repository 어노테이션을 달지 않았음에도 Controller에서 에러를 표시하지 않습니다..
실행시에는 에러를 잡아내서 강의 진행에는 무리가 없으나, 혹시 이유를 알고싶어서 질문합니다...
 
1. 아직 @Service 를 추가하기 전이나,
 
2. intellij가 error 경고를 띄우지 않음
 
3. 실행시에는 에러를 잘 잡아냅니다.

답변 1

0

안녕하세요. tipsyboy님, 공식 서포터즈 David입니다.

.
자동주입은 런타임(프로그램 실행시)에 발생합니다.

따라서 생성자의 파라미터로 전달될 MemberService는 런타임에 결정됩니다.

그러므로 컴파일타임이 아닌 런타임에 에러를 발생시키는 것입니다.

또한 @Autowired가 어떻게 동작하는지 아셔야 합니다.

@Service에 의해 MemberService가 빈으로 등록되어야

@Autowired에 의해 MemberService는 MemberController 생성자의 파라미터로 주입될 것입니다.

@Service 애너테이션을 붙이지 않으셨기 때문에 MemberService는 빈으로 등록되지 못했고 @Autowired에 의해 MemberService 빈을 찾을 때 MemberService 빈이 존재하지 않기 때문에 에러가 발생하는 것입니다.

.
감사합니다.

친절한 답변 감사드립니다.

질문이 좀 모호했나보네요.

제 질문은 강의 화면(04:12~)과는 다르게 ide가 빨간색 밑줄로 경고를 하지 않는다는 것이었습니다.

크리티컬한 부분이 아니라서 강의를 진행하는데는 문제가 없었으나,

혹시 intellij community와 ultimate 버전 차이때문인가 궁금해서 다시 한 번 질문드립니다...ㅠ

해당 경고는 community 버전에서는 지원하지 않는 것으로 보이네요.

감사합니다!

한갓진 오후의 간술맨님의 프로필 이미지
한갓진 오후의 간술맨

작성한 질문수

질문하기