Framework/Spring

[Spring] 스프링 컨테이너와 스프링 빈

Ella_K 2023. 3. 16. 10:47

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

스프링 컨테이너 생성

//스프링 컨테이너 생성
ApplicationContext applicationContext =
        new AnnotationConfigApplicationContext(AppConfig.class);
  • ApplicationContext를 스피링 컨테이너라 한다.
  • ApplicationContext는 인터페이스이다. (AnnotationConfigApplicationContext 클래스가 인터페이스의 구현체)
  • 스프링 컨테이너를 생성할 때 구성 정보를 지정해 주어야한다. (여기서 AppConfig.class)
  • 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.
  • 스프링 컨테이너는 설정정보를 참고해서 의존관계를 주입한다.

Bean Factory

  • 스프링 컨테이너의 최상위 인터페이스다.
  • 스프링 빈을 관리하고 조회하는 역할을 담당한다.
  • getBean() 을 제공한다.

ApplicationContext

  • BeanFactory 기능을 모두 상속받아서 제공한다.
  • BeanFactory와 차이: 빈 관리 조회 + 부가기능
  • BeanFactory를 직접 사용할 일은 거의 없고, 부가 기능이 포함된 ApplicationContext를 사용한다.
  • BeanFactory, ApplicationContext를 스프링 컨테이너라 한다.

다양한 설정 형식 지원

  • 스프링 컨테이너는 다양한 형식(자바 코드, XML)의 설정 정보를 받아드릴 수 있게 유연하게 설계되어 있다.