Spring Framework

[Spring] Bean 등록 어노테이션 @Component, @Configuration, @Bean 차이

포포015 2021. 6. 23. 23:17

@Component 와 @Configuration은 큰 차이는 없습니다. 

@Configuration의 내부를 살펴보면

@Component가 정의되어 있습니다. 따라서 @Component와 @Bean을 비교하는 것이 맞습니다.

 

우선적으로, 개발자가 직접 작성한 클래스에 대하여 @Component는 위와 같이 bean으로 등록 할 수 있습니다. 반대로 라이브러리 혹은 내장 클래스등 개발자가 직접 제어가 불가능한 클래스의 경우 @Configuration + @Bean 어노테이션을 이용하여 bean으로 등록하여 사용하면 됩니다.

 

정리

 @Component

 - 개발자가 직접 작성한 클래스를 bean 등록하고자 할 경우 사용

 

 @Configuration + @Bean

 - 외부라이브러 또는 내장 클래스를 bean으로 등록하고자 할 경우 사용. 

 - 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuraton을 명시