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

기만이님의 프로필 이미지

작성한 질문수

자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌

의존객체 자동 주입

프로퍼티, 메소드에 @Autowired적용시 기본생성자

작성

·

230

0

를 꼭 적어야하는 이유가 이해가 잘 안갑니다.

생성자

public WordRegisterService(WordDao wordDao){

~

}

에서 @Autowired가ㅏ 없기때문에 wordDao를 찾을 수 없다는게 무슨 뜻 인가요..?

답변 2

1

자바에서는 객체를 생성할 때 생성자가 필수적으로 호출이 되어야합니다. 만약 public WordRegisterService(){} 와 같은 기본 생성자가 없고, public WordRegisterService(WordDao wordDao){} 와 같은 객체가 필요한 생성자만 있다고 가정합시다. 그렇다면 @AutoWired는 프로퍼티나 setter메서드에만 적용이 되어 있는데, 생성자에 @AutoWired키워드가 없기 때문에 객체를 생성하는데 필요한 WordDao클래스를 찾지 못해서 에러가 발생하게됩니다. 

0

기만이님의 프로필 이미지
기만이
질문자

파라미터가 필요한 생성자에 autowired가 안붙어서 생긴 문제라면

프로퍼티or 메소드에 autowried가 붙었는지 가 아닌

파라미터 필요한 생성자에 autowired가 붙었는지 에 따라 기본생성자를 추가해줘야하는것 아닌가요?( ex. 프로퍼티, 메소드, 생성자 모두에 autowired 안붙어있으면 이 때도 기본생성자 추가해줘야하지 않을까요..?)