해결된 질문
작성
·
531
답변 1
1
@Autowired는 타입 매칭 시도 후, 동일 타입이 존재하면 필드명으로 매칭을 시도하는데 이 부분에서 문제가 발생하는 것 같습니다.
생성자 주입으로 바꿔서 해보시겠어요?
private final MessageSource ms;
@Autowired
public MessageSourceTest(MessageSource messageSource) {
this.ms = messageSource;
}
+
다른 클래스에서도 필드 주입으로 메시지소스 주입 시 동일한 에러가 발생하는지요?
생성자 주입으로 하니 정상 동작합니다.
생성자 주입 관련 공부도 다시 해봐야 겠네요. 감사합니다.^^
+ 메시지, 국제화 강의에서 사용하는 다른 클래스에서는 @Autowired를 사용하지 않아 잘은 모르겠습니다. 여태까지 강의를 들으면서 이런 경우는 처음인것으로 보아 어느 부분인지는 모르지만 제 인텔리제이 설정이나 다른 부분이 잘못 되었을꺼 같습니다.
단순히 빨간줄만 없애는 것은 @SpringBootTest를 지우면 빨간 줄은 사라지지만, helloMessage()실행하면 아래와 같이 실행은 안됩니다.
"message" 폴더에 있는 코드도 역시 빨간 줄이 나옵니다.
하다가 다른 해결 방법을 찾았는데, 위 사진과 같이 ms를 messageSource로 다 고치면 실행이 되는데 이유를 모르겠습니다. 혹시 이유를 알 수 있을까요?