시작이 반

[Spring] 스프링 컨테이너 생성과정 본문

Programming/Spring

[Spring] 스프링 컨테이너 생성과정

G_Gi 2021. 5. 11. 20:38
SMALL

1. 스프링 컨테이너 생성

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

ApplicationContext를 스프링 컨테이너라고 한다.

new AnnotationConfigApplicationContext를 사용하여 어노테이션 기반으로 설정된 class를 기반으로 스프링 컨테이너를 만든다.

AppConfig는 객체를 생성하는 class이다.

어노테이션으로 configuration과 빈을 설정해준다.

@Configuration
public class AppConfig {

    @Bean
    public MemberService memberService(){
        return new MemberServiceImpl(memberRepository());
    }

    @Bean
    public MemoryMemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }

    @Bean
    public OrderService orderService(){
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }

    @Bean
    public DiscountPolicy discountPolicy(){
//        return new FixDiscountPolicy();
        return new RateDiscountPolicy();

    }

}

 

이렇게 하면 AppConfig를 구성정보로 스프링 컨테이너가 생성이된다.

 

2. 스프링 빈 등록

설정 클래스 즉, AppConfig의 정보를 사용하여 빈을 컨테이너에 등록한다.

메소드 명으로 빈의 이름이 등록되고 리턴값으로 빈의 객체가 등록된다.

 

3. 스프링 빈 의존관계 설정

등록된 빈들을 가지고 설정정보를 참고하여 의존관계를 주입한다.

LIST