강의

멘토링

로드맵

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

창현님의 프로필 이미지
창현

작성한 질문수

스프링 핵심 원리 - 기본편

@Autowired 필드 명, @Qualifier, @Primary

@Autowired나 @Qualifier, @Primary를 사용해야하는 이유

작성

·

445

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
말그대로 @Autowired나 @Qualifier, @Primary를 사용해야하는 이유가 궁금합니다. 조회 대상 빈이 2개 이상일 때 찾기 위해서라고 하는데 우선순위를 정해서 한다는 것은 어차피 우선순위에서 벗어난 빈은 사용하지 않는다는 것이고 사용하지 않는 빈은 @Component를 삭제하여 빈으로 등록하지 않는 것이 더 효율적이지 않을까 싶어서요! 아니면 빈에 올려두고 다른 곳에서도 우선순위에서 밀려난 빈을 사용하려고 그렇게 사용하는건지 궁금합니다!

퀴즈

필드 주입(Field Injection) 방식이 일반적으로 권장되지 않는 이유는 무엇일까요?

불변성을 보장하기 어려워서

의존성 변경이 쉬워서

순수 Java 코드로 테스트하기 어려워서

설정 코드 작성이 복잡해서

답변 2

1

"어차피 우선순위에서 벗어난 빈은 사용하지 않는다는 것이고 사용하지 않는 빈은 @Component를 삭제하여 빈으로 등록하지 않는 것이 더 효율적"이라고 말씀하셨는데, 여기에 답이 있는 것 같습니다. @Component를 삭제하여 사용하지 않으려면 클래스를 열어야 하는데 이러한 행위가 OCP 위반이라서가 아닐까요?

1

안녕하세요. 창현님, 공식 서포터즈 David입니다.

말씀하신대로 빈으로 올려두고 다른 곳에서도 사용할 수도 있기 때문입니다:)

감사합니다.

창현님의 프로필 이미지
창현

작성한 질문수

질문하기