Search
Duplicate

[스프링 핵심원리 기본] 의존관계 자동 주입 애노테이션 직접 만들기

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