• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.05.14 20:00 작성 23.05.14 20:12 수정 조회수 920

0

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

 

궁금한 점은,

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

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

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

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

답변 1

답변을 작성해보세요.

0

안녕하세요. 위진님

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

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

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

 

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

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

https://bit.ly/3fX6ygx

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

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

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

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

감사합니다.