ssung_항해일지/CS 지식 및 기술면접

Spring Container

ssungcohol 2023. 5. 11. 13:22

Spring Container란?

 - 자바 객체의 생명 주기를 관리하고, 생성된 자바 객체들에 추가적인 기능을 제공하는 역할

 - 여기서 자바 객체는 스프링에서 Bean(빈)이라고 명칭

 - 개발자가 new연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸시킬 수 있는데, 이를 스프링 컨테이너가 대신해줌. 즉, 제어 흐름을 외부에서 관리하는 것

 - 객체간의 의존관계를 스프링 컨테이너가 런타임 과정에서 알아서 만들어 줌

 - 흔히 Application Context를 스프링 컨테이너 라고 말함

 - 파라미터로 넘어온 설정 클래스 정보 (Config에 @Bean 등등)를 Spring Bean에 등록

 

Spring Container 종류

 

1. BeanFactory

  • 스프링 컨테이너의 최상위 인터페이스
  • 빈을 등록, 생성, 조회하고 돌려주는 등의 빈을 관리하는 역할
  • getBean() 메소드를 통해 빈을 인스턴스화 할 수 있음

2. Application Context

  • 일반적인 Spring Container를 말하면 Application Context를 의미
  • Bean Factory를 포함한 여러 인터페이스들을 상속받는 인터페이스
  • Bean Factory에 상속 받아 Bean을 관리하고 검색하는 기능을 Bean Factory가 제공하지만, 부가기능을 제공
    • MessageSource : 메시지 다국화를 위한 인터페이스
    • EnvironmentCapable : 개발, 운영 등 환경을 분리해서 처리하고 애플리케이션 구동에 필요한 정보를 관리하기 위한 인터페이스
    • ApplicationEventPublisher : 이벤트를 발행하고 구독하는 모델을 편리하게 지원하는 인터페이스
    • ResourceLoader : 파일, 클래스패스, 외부 등 리소스를 읽어오기 위한 인터페이스
  • Application Context 구현 시 new AnnotationConfigApplicationContext(클래스이름.class)를 사용

Spring Container 생성 과정

1. Spring Container 생성

new AnnotationConfigApplicationContext(AppConfig.class);

 - Appconfig.class에 스프링 컨테이너 구성정보를 지정

 

2. Spring Bean 등록

 - 스프링 컨테이너에 key : Bean name, value : Bean Object로 들어간다

 - @Bean default name은 beanA 이다.

 

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

 - Spring Container가 Spring Bean을 등록한 후에 의존관계를 자동으로 넣어줌

728x90

'ssung_항해일지 > CS 지식 및 기술면접' 카테고리의 다른 글

23.05.13 - 운동일지  (0) 2023.05.15
Rest Client [Spring]  (0) 2023.05.12
List, Set, Map, Hash Map  (0) 2023.05.11
제네릭 (generic)  (0) 2023.05.10
JPA 영속성 컨텍스트  (0) 2023.05.10