• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

19.07.26 17:55 작성 조회수 154

0

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

생성자

public WordRegisterService(WordDao wordDao){

~

}

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

답변 2

·

답변을 작성해보세요.

1

SunSpike님의 프로필

SunSpike

2019.07.29

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

0

기만이님의 프로필

기만이

질문자

2019.07.30

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

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

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