[Spring] 4-1. 스프링 컨테이너와 스프링 빈

송광호·2023년 12월 15일

[Spring]

목록 보기
17/41
post-thumbnail

Spring 시리즈는 혼자 공부하며 기록으로 남기고, 만약 잘못 학습 한 지식이 있다면 공유하며 피드백을 받고자 작성합니다.
스프링에 대해 깊게 공부해보고자 인프런의 김영한 강사님께서 강의를 진행하시는 (스프링 핵심 원리 - 기본편) 강의를 수강하며 정리하는 글입니다.
혹여나 글을 읽으시며 잘못 설명된 부분이 있다면 지적 부탁드리겠습니다.


스프링 컨테이너 생성

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
  • ApplicationContext를 스프링 컨테이너라고 한다.
  • ApplicationContext는 인터페이스이고, AnnotationConfigApplicationContext은 구현체이다.
  • 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다.
    • 애노테이션 기반으로 자바 설정 클래스를 만드는게 되게 편리하기에 요즘은 이 방법을 많이 사용한다.

참고: 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory,ApplicationContext로 구분해서 이야기한다.
BeanFactory를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext를 스프링 컨테이너라고 이야기한다.

스프링 컨테이너의 생성 과정

1. 스프링 컨테이너 생성

  • new AnnotationConfigApplicationContext(AppConfig.class)
    • 스프링 컨테이너가 만들어짐, 스프링 컨테이너 내부에는 스프링 빈 저장소있다.
    • 키는 빈의 이름이 되고, 값은 빈의 객체가 되는 것이다.
    • 구성정보는 AppConfig.class 로 지정했다.

2. 스프링 빈 등록

  • 파라미터로 넘어온 설정 클래스 정보를 사용하여 스프링 빈 저장소에 등록한다.

빈 이름

  • 빈 이름은 관례상 메서드 이름을 사용한다.
  • 빈 이름을 직접 부여할 수는 있지만 관례를 따르는 것이 좋다
    • @Bean(name="memberService2")

주의사항 : 빈 이름은 항상 다른 이름을 부여해야한다.

3. 스프링 의존관계 설정 - 준비

4. 스프링 의존관계 설정 - 완료

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

참고: 스프링은 스프링 빈을 생성하고, 의존관계를 주입하는 단계가 나누어져있다. 그런데 이렇게 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한번에 처리가 된다.

0개의 댓글