SpringBoot @Configuration

song yuheon·2023년 9월 6일
0

Spring

목록 보기
58/93
post-thumbnail

@Configuration은 Spring Framework에서 중요한 역할을 하는 어노테이션 중 하나이다. 이 어노테이션은 주로 Java 기반의 설정 클래스에 적용되어 해당 클래스가 Spring의 설정 정보를 포함하고 있다는 것을 나타낸다.


스프링에서는 XML 기반의 설정 방식 뿐만 아니라 Java 기반의 설정 방식도 제공하고 있다. Java 기반의 설정을 사용하려면 해당 설정 클래스에 @Configuration을 붙여야 한다. 이렇게 하면 해당 클래스는 스프링의 설정 정보를 담고 있는 것으로 간주되며, 내부에서 @Bean 어노테이션을 사용하여 빈을 등록할 수 있다.


@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

위의 코드에서 AppConfig 클래스는 @Configuration 어노테이션이 붙어 있기 때문에 스프링 설정 클래스로 인식되고, 내부의 myService 메서드는 @Bean 어노테이션을 통해 스프링 컨테이너에 MyService 타입의 빈으로 등록된다.

그러나 @Configuration이 없는 클래스에서 @Bean을 사용한다면, 해당 메서드의 반환 객체는 빈으로 등록되지 않는다.

하지만 스프링 부트와 같은 환경에서는 @Component,@Service, @Repository, @Controller 와 같은 스테레오타입 어노테이션을 통해 간접적으로 빈을 등록할 수도 있지만, 전체 설정을 위한 목적으로 사용되는 클래스인 경우에는 @Configuration을 사용하여 해당 클래스의 역할과 의도를 명확하게 표현하는 것이 좋고 생각된다.


profile
backend_Devloper

0개의 댓글