@Qualifier("mainDiscountPolicy") 이렇게 문자를 적으면 컴파일 시 타입 체크가 안된다. 이렇게 될 경우 mainDisccountPolicy처럼 오타가 나도 해당하는 코드가 문제가 발생했는지 모르고 진행될 경우가 발생한다.
애노테이션을 직접 만들어서 변경을 해주자.
1) MainDiscountPolicy를 만들자
•
애노테이션은 상속이라는 개념이 없다. 이렇게 여러 애노테이션을 모아서 사용하는 기능은 스프링이 지원해 주는 것이다.
←Code
2) 주입되는 Qulifier를 수정해 주자.
•
Stirng이 아닌 애노테이션으로 변경으로 해당코드에 오타가 발생돼 시 바로 예측할 수 있다.
•
우리는 이제 빈이 충돌 났을때 위와 같이 @MainDiscountPlicy 애노테이션을 통해서 맞춰줄 수 있다.
변경 전
←Code
변경 후
←Code
결론
위와 같이 번거롭게 변경을 왜 해줘야 되는지 처음에는 와닿지 안았다.
하지만 Stirng자체가 컴파일시 오류를 찾아내기 너무 힘들기 때문에 번거롭더라도 위와 같이 애노테이션을 만들어서 사용하는걸 적극 권장한다.
하지만 무엇보다 중요한것 적절한 위치에 @Qualifier와 @Primary를 사용하는 게 제일 좋다.!