Corgi [Spring] AnnotationConfigApplicationContext의 역할과 활용 방법
본문 바로가기
코딩/스프링(Spring)

[Spring] AnnotationConfigApplicationContext의 역할과 활용 방법

by 짱아아빠 2023. 7. 10.
반응형


Spring 프레임워크에서는 ApplicationContext 인터페이스의 다양한 구현체 중 하나로 AnnotationConfigApplicationContext를 제공합니다. AnnotationConfigApplicationContext는 Java 기반의 설정 클래스를 사용하여 빈(Bean) 객체를 설정하고 관리하는 역할을 수행합니다. 이번 글에서는 AnnotationConfigApplicationContext의 역할과 Spring에서의 활용 방법에 대해 알아보겠습니다.

1. AnnotationConfigApplicationContext란?
AnnotationConfigApplicationContext는 Spring의 ApplicationContext 인터페이스를 구현한 클래스로, Java 기반의 설정 클래스를 사용하여 빈 객체를 설정하고 관리합니다. XML 설정 파일을 사용하는 대신, @Configuration 어노테이션이 적용된 Java 설정 클래스를 사용하여 빈의 정의와 의존성을 설정할 수 있습니다.

2. AnnotationConfigApplicationContext의 역할
- 빈 객체의 생성과 관리: AnnotationConfigApplicationContext는 @Configuration 어노테이션이 적용된 Java 설정 클래스를 스캔하고, @Bean 어노테이션을 사용하여 빈 객체를 생성하고 관리합니다. 이를 통해 객체의 생명 주기를 제어하고 의존성 주입(Dependency Injection)을 수행합니다.
- 컴포넌트 스캔: AnnotationConfigApplicationContext는 @ComponentScan 어노테이션을 활용하여 컴포넌트를 자동으로 스캔하고 등록할 수 있습니다. @Component 어노테이션이 적용된 클래스를 스캔하여 빈으로 등록하고, 필요한 의존성을 자동으로 주입할 수 있습니다.
- 프로파일 관리: AnnotationConfigApplicationContext는 @Profile 어노테이션을 활용하여 프로파일을 지정할 수 있습니다. 이를 통해 다양한 환경에 따라 빈의 설정을 분리하여 관리할 수 있습니다.

3. AnnotationConfigApplicationContext의 활용 방법
- 설정 클래스 등록: AnnotationConfigApplicationContext 객체를 생성할 때, @Configuration 어노테이션이 적용된 Java 설정 클래스를 매개변수로 전달합니다. 이 설정 클래스에는 @Bean 어노테이션을 사용하여 빈의 정의를 작성합니다.
- 빈 사용: AnnotationConfigApplicationContext는 getBean() 메서드를 사용하여 등록된 빈 객체를 가져올 수 있습니다. 필요한 빈의 타입이나 이름을 지정하여 해당 빈을 조회할 수 있습니다.

예시를 통해 AnnotationConfigApplicationContext의 활용을 살펴보겠습니다.

```java
@Configuration
public class AppConfig {
    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }
}

public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService

.class);
        userService.doSomething();
        context.close();
    }
}
```

반응형


위의 예시에서는 AppConfig 클래스에 @Configuration 어노테이션이 적용되어 빈 객체인 UserService를 정의합니다. AnnotationConfigApplicationContext를 생성할 때 AppConfig.class를 전달하여 설정 클래스를 등록하고, getBean() 메서드를 사용하여 UserService 빈을 가져옵니다.

이상으로 Spring에서 AnnotationConfigApplicationContext의 역할과 활용 방법에 대해 알아보았습니다. AnnotationConfigApplicationContext를 사용하여 Java 기반의 설정 클래스를 통해 빈 객체를 설정하고 관리할 수 있습니다. 유연하고 간결한 설정 방식을 활용하여 Spring 애플리케이션을 개발해보세요. 감사합니다.

반응형

댓글