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

객체 간 의존 관계

  • 서블릿 객체를 제외한 모든 자바 객체(POJO)를 작성하고 이 객체들에 대한 관계를 처리하는 것이 스프링 프레임워크 기반 애플리케이션 프로그래밍의 핵심임
  • 객체 간 의존성을 코드 상에서 직접 처리하지 않기 위해 제어의 역전(Inversion of Control; IoC) 또는 의존성 주입(Dependency Injection; DI)을 이용하여 스프링 컨테이너가 처리하도록 함
    • 이러한 스프링 컨테이너를 IoC 컨테이너라고 부르기도 함
  • 스프링 컨테이너에게 객체 간 의존관계에 대한 정보를 메타데이터로 알려주면 애플리케이션 구동 시 스프링 컨테이너는 적절한 구성 정보를 탐색하여 객체 간 관계를 알아서 처리함
    • 메타데이터는 XML 또는 어노테이션(Annotation)으로 설정할 수 있음

스프링 빈

  • 스프링 빈은 스프링 컨테이너에 의해 IoC 또는 DI 개념으로 관리되는 모든 자바 객체를 말함
  • 스프링 컨테이너는 메타데이터를 토대로 스프링 빈들 간의 의존성을 파악하여 애플리케이션을 구동함

스프링 빈 정의 및 생성

  1. 스프링 빈 클래스 정의
  2. 클래스 정의부에 @Configuration 어노테이션을 설정하여 구성 클래스 정의
  3. 구성 클래스의 메소드 정의부에 @Bean 어노테이션를 붙여 해당 메서드 명과 동일한 이름의 빈이 생성되도록 함
  4. 스프링 컨테이너 객체로 부터 빈을 가져와 해당 빈을 사용

Comments