작성
·
1.3K
·
수정됨
0
강의해주신 소스코드에서, 추상클래스에 @Component와 멤버변수에 @Autowired를 붙이지 않는 모습을 보여주셨습니다. 이와 관련해서 여러 실험을 해보다보니 궁금한 점이 생겼습니다.
궁금한 점은,
추상 클래스에 @Component를 붙여도 왜 정상작동하는 지 모르겠습니다. -> 추상 클래스는 객체 생성이 불가능한 것으로 알고 있는데, 어떻게 빈에 등록되는 건가요?
(제네릭이라 빈컨테이너에서 가져오는 것도 쉽지 않네요..)
위의 코드에서 @Autowired를 붙이고, 생성자를 지웠습니다.
이미 빈에 등록된 LogTrace를 꺼내서 사용하고자 하는데 왜 null이 반환되어 널포인터예외가 발생합니다. 이는 왜 불가능한 것인가요??
답변 1
0
안녕하세요. 위진님
우선 추상클래스만으로는 빈으로 등록되지 않습니다. 아마도 그 구현체 중에 하나가 등록되어 있을거에요.
저희가 답을 드리기 위해서는 현재 상황을 정확하게 확인하는 것이 필요합니다.
1번 2번 상황을 코드로 잘 정리해서 실행해서 저희가 확인할 수 있도록 코드를 만들어주세요.
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.
감사합니다.