인프런 커뮤니티 질문&답변

한현진님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

의존관계 자동주입 - 조회 빈이 2개 이상일 경우에 궁금증이 있습니다.

해결된 질문

23.12.09 15:51 작성

·

193

·

수정됨

0

@Autowired 필드 명, @Qualifier, @Primary

 

강의 부분에서 궁금한 점이 생겼습니다.

결국에 조회 빈이 2개 이상인 경우엔 위의 어노테이션을 활용해서 우선순위를 지정해준다고 되어있는데,

필드명을 수정해주거나, Qualifier의 이름을 변경해야하는 상황이 생긴다면

스크린샷 2023-12-09 오후 3.42.28.png

스크린샷 2023-12-09 오후 3.32.56.png
( ex) OrderServiceImpl의 discountPolicy를 fixDiscountPolicy 에서 rateDiscountPolicy 로 할인 정책을 변경하고 싶다면)

직접 구현체들(클라이언트 코드)을 수정해줘야하는데
( ex) Autowired 된 DiscountPolicy의 변수명을 수정하거나, @Qualifier의 이름을 수정해서)

이는 OCP 원칙에서 위배되는 것은 아닌지 궁금합니다.

 

나아가 이런식으로 실제 구현체를 수정해줘야하는 것이라면 discountPolicy 의 타입명만 DiscountPolicy일 뿐이지, 타입명 자체를 FixDiscountPolicy 로 지정하거나 RateDiscountPolicy로 지정해서 사용하는 DIP 위반하는 코드들과 무슨 차이인지 잘 모르겠습니다.

 

순수 자바 코드 자체는 해당 원칙들을 지키고 있는 것이니까 상관없는것인가요?