스프링 컨텍스트, 빈 정의

김우진·2026년 2월 17일

Spring

목록 보기
2/17
post-thumbnail

[Spring] 02. 스프링 컨텍스트와 빈(Bean) 정의하기

오늘은 스프링의 핵심 심장부인 스프링 컨텍스트가 무엇인지, 그리고 그 안에 객체()를 등록하는 세 가지 방법에 대해 공부했습니다.


1. 스프링 컨텍스트(Spring Context)란?

스프링 컨텍스트는 사용자가 정의한 인스턴스(객체)를 스프링이 대신 생성하고, 의존성을 주입하며, 수명 주기를 제어할 수 있게 해주는 매커니즘(관리 환경)입니다. 스프링이 관리하는 이 객체들을 우리는 빈(Bean)이라고 부릅니다.


2. 빈을 등록하는 3가지 방법

@Bean 애너테이션 사용 (자바 설정 방식)

구성 클래스(Configuration) 내의 메서드 위에 @Bean을 붙여 직접 빈을 정의합니다.

  • 주로 외부 라이브러리 객체를 빈으로 등록할 때 사용합니다.
  • 메서드가 반환하는 객체가 컨텍스트에 등록됩니다.

② 스테레오타입(Stereotype) 애너테이션 사용

클래스 선언부 위에 특정 애너테이션을 붙여 스프링이 자동으로 찾게 만드는 방식입니다.

  • @Component: 스프링이 관리해야 할 컴포넌트임을 표시합니다.
  • 컴포넌트 스캔: 구성 클래스에 @ComponentScan(basePackages = "...")를 추가하여 어느 패키지를 읽을지 알려줘야 합니다.

③ 프로그래밍 방식으로 빈 추가

스프링 5부터 도입된 방식으로, 애플리케이션 실행 중에 동적으로 빈을 등록할 수 있습니다.

  • context.registerBean("BeanName", BeanType, Supplier); 형식을 사용합니다.
  • 특수한 상황에서 빈 등록 로직을 세밀하게 제어해야 할 때 유용합니다.

💡 요약

  • 컨텍스트는 객체를 담는 그릇이자 관리자다.
  • 가장 수동적인 방식은 @Bean, 가장 자동화된 방식은 @Component + 스캔이다.
  • 상황에 따라 적절한 등록 방식을 선택하는 것이 중요하다.

#Spring #SpringContext #Bean #Java #백엔드공부

0개의 댓글