yesolje
스프링 빈(Spring bean) 생명주기 본문

✔️ 스프링 빈(Bean) 이란?
빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다.
즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다.
빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.
new 로 생성한 인스턴스 → 빈 아님
@Component , @Bean 등으로 생성한 인스턴스 → 빈
✔️ 스프링 빈(Bean) 사용이유 ?
가장 큰 이유는 스프링 간 객체가 의존관계를 관리하도록 하는 것에 가장 큰 목적이 있다. 객체가 의존관계를 등록할 때 스프링 컨테이너에서 해당하는 빈을 찾고, 그 빈과 의존성을 만든다.
✔️ 스프링 빈(Bean) 등록 방법
🔹 xml에 직접 등록
🔹 @Bean 어노테이션을 이용
🔹 @Component, @Controller, @Service, @Repository 어노테이션을 이용
Spring Boot 애플리케이션이 실행되면, 내부적으로는 SpringApplication.run()을 통해 ApplicationContext가 초기화된다.
이 시점에 Spring은 classpath에서 @Component, @Service, @Controller, @Configuration 등의 어노테이션이 붙은 클래스를 스캔해서 빈 정의로 등록하고, 이를 기반으로 빈을 생성한다.
이때 대부분의 Bean은 싱글톤(Singleton) 스코프이므로, 컨테이너 초기화 시점에 미리 생성되어 ApplicationContext에 등록된다.
✔️ 빈 생성 타이밍과 생명주기
스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 앱 본연의 동작 수행 → 소멸전 콜백→ 스프링 종료
'기술' 카테고리의 다른 글
| Scapy를 활용한 실시간 TCP 패킷 수집과 Kafka‑DB 데이터 파이프라인 구축 (1) | 2025.07.24 |
|---|---|
| Spring의 기능 확장 - 상속과 템플릿 메소드 패턴 (0) | 2025.06.01 |
| 캐시(Cache) 의 동작 원리 (0) | 2025.05.01 |
| 멀티모듈 구조로 Spring 프로젝트 리팩토링 (0) | 2025.04.16 |
| Spring Validator를 이용한 전역 검증체계 구축 (1) | 2024.11.17 |