스프링 컨테이너와 빈

이원석·2022년 1월 21일
0

Spring

목록 보기
4/22
post-thumbnail
*인프런 김영한 강사님의 강좌를 참고하여 정리한 내용입니다.*

[BeanFactory]

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

[Application Context]

BeanFactory 인터페이스를 상속받아 구현한 ApplicationContext는 스프링 컨테이너 역활을 한다.

애플리케이션을 개발할 때는 빈을 관리하며 조회하는 기능 외에도 수 많은 부가기능이 필요하다. 따라서 ApplicaitonContext는 BeanFacotry 이외에도 여러 인터페이스들을 상속한다.

  • 메시지 소스를 활용한 국제화 기능
    한국에서 들어오면 한국어, 영어권에서 들어오면 영어로 출력

  • 환경변수 설정
    로컬, 개발, 운영등의 영역을 구분하여 처리

  • 애플리케이션 이벤트
    이벤트를 발행하고 구독하는 모델을 편리하게 지원

  • 편리한 리소스 조회
    파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회





스프링 컨테이너 생성과정


스프링 컨테이너는 XML기반 혹은 애노테이션 기반의 자바 설정 클래스로 생성할 수 있다.

@Configuration
pulbic class AppConfig {

    @Bean
    public ... {
    ...
 

@Configuration 어노테이션이 붙은 클래스를 스프링 컨테이너 구성정보로 활용한다. 여기서 @Bean이 붙은 메소드를 모두 호출해서 반한된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.

// 스프링 컨테이너 생성
ApplicationContext ac = 
	new AnnotaionConfigApplcationContext(AppConfig.calss);

구성 정보를 지정해 준 클래스를 파라미터에 등록해준다.



1. 스프링 컨테이너 생성



2. 스프링 빈 등록


파라미터로 넘어온 설정 클래스 정보를 사용하여 스프링 빈을 등록한다. 빈 이름의 디폴트값은 메서드 이름이며 직접 이름을 부여할 수도 있다!

@Bean(name="xxx")


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



0개의 댓글