Hyunebee

스프링의 핵심 원리 이해 - 컴포넌트 스캔 본문

Spring

스프링의 핵심 원리 이해 - 컴포넌트 스캔

Hyunebee 2022. 1. 5. 09:33

@CompoenetScan은 @Component가 붙은 모든 클래스를 스프링 빈으로 등록한다.

이때 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.

 

@Autowired 의존관계 자동주입

생성자에 @Autowired를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다.

이때 기본 조회 전략은 타입이 같은 빈을 찾아서 주입한다.

 

이렇게 자동으로 의존관계를 주입하다보면 같은 빈 이름을 등록하면 어떻게 될까?

1.자동 빈 등록 vs 자동 빈 등록

컴포넌트 스캔에 의해 자동으로 스프링 빈이 등록되는데, 그 이름이 같은 경우 스프링은 오류를 발생시킨다. ConflictingBeanDefinitionException 예외 발생

2.자동 빈 등록 vs 수동 빈 등록

이 경우에는 수동 빈 등록이 우위를 가진다 자동빈을 오버라이딩한다.

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8