티스토리 뷰

IT/JAVA 및 Spring

[JAVA/Spring] @Configuration 어노테이션

주인장 진빼이

@Configuration

스프링 코어 프레임워크의 어노테이션이며, XXXConfig 같은 자바 클래스에서 사용할 수 있다.
@Configuration 어노테이션을 가지고 있는 클래스는 내부에 @Bean 어노테이션으로 등록된 메소드가 존재하고 있음을 알 수 있다.

쉽게 말해, 설정파일을 의미하는 어노테이션이자, @Bean으로 등록된 메서드가 있다는 것을 알리는 어노테이션이다. (싱글턴 보장)

아래 코드에서 @Configuration 어노테이션이 주석처리되면 myBean()이 직접 호출된 경우
해당 객체는 싱글턴 규칙이 깨질 수 있다.

하지만 서버를 시작할 때는 정상적으로 싱글턴 빈으로 등록된 것을 확인할 수 있었다.

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

@Configuration
public class MyAppConfig {

    @Bean
    public MyBean myBean() {
        return new MyBean();
    }    
}

아래 코드를 이용하여 @Configuration으로 등록했던 인스턴스를 가져올 수 있다.
AnnotationConfigApplicationContext 를 이용하면 Bean 객체를 생성할 수 있다.

AnnotationConfigApplicationContext 는 어노테이션을 이용한 클래스의 정보를 가지고 있는 Context이며,
geatBean 메서드를 이용하여 @Bean으로 스프링 컨테이너에 등록한 객체의 정보를 읽어와 해당 객체를 생성할 수 있다.

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyAppConfig.class);
MyAppConfig appConfig = ctx.getBean(MyAppConfig.class);

ctx.close();
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함