티스토리 뷰
@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();
댓글