인프런 커뮤니티 질문&답변

hdh8990님의 프로필 이미지
hdh8990

작성한 질문수

토비의 스프링 6 - 이해와 원리

스프링 컨테이너와 의존관계 주입

BeanFactory 의존관계

작성

·

102

0

@Configuration

public class ObjectFactory {

@Bean

public PaymentService paymentService () {

return new PaymentService(exRateProvider());

}

@Bean

public ExRateProvider exRateProvider() {

return new WebApiExRateProvider();

}

}

 

여기서 Bean 어노테이션을 붙이면 paymentService가 호출되지 않아도 paymentService와 exRateProvider의 의존관계가 설정이 되는게 맞나요??

 

만약 exRateProvider에만 Bean 어노테이션을 붙이지 않으면 어떻게 되는 건가요??

답변 1

0

토비님의 프로필 이미지
토비
지식공유자

@Configuration 클래스 안에 @Bean이 붙은 메소드만 스프링 컨테이너가 관리하는 오브젝트, 즉 빈이 됩니다. @Bean 이 없으면 스프링의 빈으로는 생성이 안 됩니다.

그런데, 스프링이 아니라 그냥 단순 오브젝트 팩토리라고 보고 실행을 하면 코드는 동작할테니 @Bean이 없어도 해당 오브젝트를 만들 수는 있죠. 이걸 스프링과 같은 프레임워크가 인식해서 자동으로 만들고 관리해주도록 하는 것이 이런 애노테이션의 활용 방법입니다.

hdh8990님의 프로필 이미지
hdh8990

작성한 질문수

질문하기