스프링 공부를 하며 알게 된 annotation
간단한 정리를 통해 개념을 정리하자.
설정 class에 붙여준다.
@Bean을 사용하여 빈을 등록한다.
빈 생성 시 싱클톤 보장.
@ComponentScan 애노테이션을 설정 정보에 붙여주면
@Component 붙은 클래스를 스캔하여 스프링 빈으로 등록한다
@Component
@Controller
@Service
@Repository
@Configuration
그럼 @Configuration 과 @ComponentScan을 동시에 사용하여 충돌하면 어떻게 될까?
이러한 경우 수동 빈 등록이 우선이다.
@Configuration은 클래스에 직접 붙이고,
@Bean을 사용하여 설정 정보와 의존관계를 직접 명시하였다.
하지만 @Component에서는 설정 정보가 없기 때문에 의존관계 주입이 필요하다.
여기서 @Autowired를 사용하여 생성자에서 여러 의존관계를 한 번에 주입시켜준다.
@Qualifier - 이름 매칭
빈 등록 시(@Component) @Qualifier("빈 이름")을 붙여준다.
의존관계 주입 시(@AutoWired) @Qualifier("빈 이름")을 붙여준다.
@Primary - 우선순위 사용
빈 등록 시(@Component) @Primary을 붙여주어 우선순위를 준다.