Back-end/Spring

[Spring] @Configuration과 @Component 사용법과 차이

shoney9254 2023. 3. 15. 16:37
반응형

스프링을 사용하면서 빈으로 클래스를 등록할 때, @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하여 하나의 설정으로 결합할 수도 있습니다.

반응형