본문 바로가기
Spring

Spring Annotation 12. @Configuration

by Status Code 2023. 4. 19.

@Configuration이란?
@Configuration은 스프링의 주요 어노테이션 중 하나로, 클래스가 스프링의 빈 정의를 포함하는 설정 클래스임을 나타냅니다. 설정 클래스는 애플리케이션의 전체 설정이나 특정 부분의 설정을 포함하며, @Bean 어노테이션이 붙은 메서드를 사용하여 빈을 정의하고 생성합니다. @Configuration 어노테이션을 사용하면, 스프링 컨테이너가 해당 클래스의 인스턴스를 생성하고 관리할 수 있습니다.

 

@Configuration 예제

package com.example.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyService(myRepository());
    }

    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}

위 예제에서 AppConfig 클래스는 애플리케이션의 설정을 포함하는 클래스로서 @Configuration 어노테이션이 붙어 있습니다. 이 클래스는 myService()와 myRepository()라는 두 개의 메서드를 포함하며, 각각 @Bean 어노테이션으로 스프링 빈을 정의하고 생성합니다. myService() 메서드는 MyService 인스턴스를 생성하고, 이때 생성자 인자로 myRepository() 메서드에서 생성한 MyRepository 인스턴스를 전달합니다.

@Configuration을 사용하여 애플리케이션의 설정을 분리하면, 코드의 모듈화 및 재사용성이 향상되며, 테스트하기도 쉬워집니다. @Configuration은 보통 애플리케이션 전체 설정이나 특정 모듈의 설정을 관리하는 데 사용됩니다.

댓글