UnsatisfiedDependencyException오류 발생 : 의존성 주입 모호성 오류

오류원인 서칭


@Autowired를 통해 의존성 주입을 진행했지만 watch타입이 두개 이상 존재하므로 발생한 오류

@Qualifier는 id를 명시해주는 어노테이션으로
해당 어노테이션 사용하여 오류 해결
<해결 코드>
package test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component("apple")
public class ApplePhone implements Phone {
@Autowired // 메모리의 자료형(타입)을 인지해서 주입해줌
@Qualifier("aw")
private Watch watch; // 멤버변수 초기화 = 생성자 // 워치에 의존성 주입을 해야한다. // DI 대상
// private int num;
public ApplePhone() {
// this.watch = new AppleWatch(); // 개발자가 new를 직접 사용하기 때문에 사용x
System.out.println("아이폰 객체 생성 01");
}
/*
public IPhone(Watch watch) {
this.watch = watch;
System.out.println("아이폰 객체 생성 02");
}
public IPhone(Watch watch, int num) {
this.watch = watch;
this.num = num;
System.out.println("아이폰 객체 생성 03");
}
*/
// init-method="initMethod"를 bean에 추가
@Override
public void powerOn() { // 아이폰은 워치에 대해 의존성을 갖는다.
this.watch.powerOn();
System.out.println("아이폰 전원 ON");
}
@Override
public void powerOff() {
this.watch.powerOff();
System.out.println("아이폰 전원 OFF");
}
// getter,setter는 코드 하단에 기입하는것이 일반적
public Watch getWatch() {
return watch;
}
public void setWatch(Watch watch) {
this.watch = watch;
}
/*
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
*/
}
2024.10.04
'오류리포트' 카테고리의 다른 글
| [오류리포트] FeatureNotFoundException (0) | 2024.10.08 |
|---|---|
| [오류리포트] BeanDefinitionStoreException (0) | 2024.10.07 |
| NoSuchBeanDefinitionException 오류 (0) | 2024.10.01 |
| [오류리포트] 404,500 오류 (0) | 2024.08.06 |
| [오류리포트] NullPointerException (2) (0) | 2024.07.29 |