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

suhjaesuk·2022년 11월 11일
0

Spring

목록 보기
3/3
post-thumbnail

스프링 컨테이너 생성과정

스프링 컨테이너의 생성 과정을 알아보자.

📌 스프링 컨테이너 생성

//스프링 컨테이너 생성 
ApplicationContext applicationContext = new     
							AnnotationConfigApplicationContext(AppConfig.class);
  • ApplicationContext 를 스프링 컨테이너라 한다.
  • ApplicationContext 는 인터페이스이다.
  • 스프링 컨테이너는 XML 기반으로 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로 만들 수 있다.
  • new AnnotationConfigApplicationContext(AppConfig.class); 이 클래스는 ApplicationContext 인터페이스의 구현체이다.
  • 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야한다. 여기서는 AppConfig.class 로 지정하였다

📌 스프링 빈 등록

스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.

@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 RateDiscountPolicy();
    }
}

빈 이름

  • 빈 이름은 메서드 이름을 사용한다
  • @Bean(name="memberService2") 을 이용하여 빈 이름을 직접 부여할 수 있다
  • 빈 이름은 중복되면 안된다.

📌 스프링 빈 의존관계 설정

  • 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입(DI)한다.


📌 Ref. 김영한님의 스프링 핵심 원리

profile
wanna be BE-Developer

0개의 댓글