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

위진님의 프로필 이미지
위진

작성한 질문수

스프링 핵심 원리 - 고급편

템플릿 메서드 패턴 - 적용1

추상클래스 autowired 및 빈 등록 관하여 질문이 있습니다.

작성

·

1.3K

·

수정됨

0

강의해주신 소스코드에서, 추상클래스에 @Component와 멤버변수에 @Autowired를 붙이지 않는 모습을 보여주셨습니다. 이와 관련해서 여러 실험을 해보다보니 궁금한 점이 생겼습니다.

 

궁금한 점은,

  1. 추상 클래스에 @Component를 붙여도 왜 정상작동하는 지 모르겠습니다. -> 추상 클래스는 객체 생성이 불가능한 것으로 알고 있는데, 어떻게 빈에 등록되는 건가요?

    (제네릭이라 빈컨테이너에서 가져오는 것도 쉽지 않네요..)

  2. 위의 코드에서 @Autowired를 붙이고, 생성자를 지웠습니다.

    이미 빈에 등록된 LogTrace를 꺼내서 사용하고자 하는데 왜 null이 반환되어 널포인터예외가 발생합니다. 이는 왜 불가능한 것인가요??

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 위진님

우선 추상클래스만으로는 빈으로 등록되지 않습니다. 아마도 그 구현체 중에 하나가 등록되어 있을거에요.

저희가 답을 드리기 위해서는 현재 상황을 정확하게 확인하는 것이 필요합니다.

1번 2번 상황을 코드로 잘 정리해서 실행해서 저희가 확인할 수 있도록 코드를 만들어주세요.

 

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

위진님의 프로필 이미지
위진

작성한 질문수

질문하기