스프링을 사용하면서 빈으로 클래스를 등록할 때, @Configuration과 @Component를 사용합니다.
이 둘의 차이를 구분하지 않고 사용하지 않도록 2가지 어노테이션에 대해서 알아보도록 합시다.
1. @Component
@Component는 스프링의 컴포넌트 스캔 기능을 사용하여 빈으로 등록될 클래스에 적용할 수 있는 어노테이션입니다. @Component 어노테이션이 붙은 클래스는 스프링이 자동으로 빈으로 등록합니다. 이를 통해 코드 양을 줄이고 더 간결한 코드를 작성할 수 있습니다. @Component 어노테이션은 일반적으로 비즈니스 로직을 수행하는 클래스들에 많이 사용됩니다.
@Component
public class MyService {
public void doSomething() {
// 비즈니스 로직 수행
}
}
2. @Configuration
@Configuration 어노테이션은 스프링 설정 클래스를 정의할 때 사용됩니다. 스프링은 @Configuration 어노테이션이 붙은 클래스를 스프링 설정 클래스로 인식하고, 해당 클래스에서 @Bean 어노테이션을 이용하여 직접 빈을 정의할 수 있습니다. @Configuration 어노테이션을 사용하여 스프링 설정 클래스를 정의하면, 개발자가 직접 빈을 정의할 수 있어 더 세밀한 컨트롤이 가능합니다.
@Configuration
public class MyConfiguration {
@Bean
public MyService myService() {
return new MyService();
}
}
3. 결론
즉, @Component 어노테이션은 스프링이 자동으로 빈을 등록하고 관리하도록 해주는 반면, @Configuration 어노테이션을 사용하여 개발자가 직접 빈을 정의하고 구성하는 데 더 자세한 제어를 할 수 있습니다. 또한 @Configuration 어노테이션은 다른 @Configuration 클래스를 import하여 하나의 설정으로 결합할 수도 있습니다.
'Back-end > Spring' 카테고리의 다른 글
[Spring] @ResponseBody에서 객체를 JSON 반환(HttpMessageConverter) (0) | 2023.03.30 |
---|---|
[Spring] 빈(Bean) 주입 받는 방법 가장 쉬운 예시 (0) | 2023.03.15 |
[Spring] application.yml로 mysql DB 연동 (0) | 2023.03.15 |
[Spring] AOP 내부 메서드 호출 방법 (0) | 2023.03.12 |
[SOLID] 간단한 소스코드 예제 (객체 지향 설계 5가지 원칙) (0) | 2023.03.02 |