Bean이란?
빈(Bean)은 IoC(Inversion of Control) 컨테이너에 의해 관리되는 객체
애플리케이션의 핵심 구성 요소로, 주로 서비스, 데이터 엑세스 객체(DAO), 컨트롤러 등과 같은 객체를 포함한다.
Spring 컨테이너는 이러한 빈들을 생성하고, 설정하고, 관리한다.
Bean의 특징
- Spring IoC 컨테이너에 의해 관리됨
- 구성 메타데이터를 통해 정의됨 : 빈의 정의는 XML 파일, 애노테이션, JAVA 설정 클래스를 통해 제공됨.
- 의존성 주입 지원 : 빈은 다른 빈이나 리소스와의 의존성을 주입받을 수 있다.
- 생명 주기 관리 : Spring은 빈의 생명 주기(생성, 초기화, 소멸)를 관리함
Bean의 생성 방법 3가지
1. XML 설정 파일
<bean id="myBean" class="com.example.MyBean"/>
2.애노테이션 기반 설정
@Component
public class MyBean {
// ...
}
3. Java 설정 클래스
@Configuration
public class AppConfig {
@Bean
public MyBean myBean() {
return new MyBean();
}
}
Bean의 생명 주기
- 스프링 IoC 컨테이너 생성
- 스프링 빈 생성
- 의존관계 주입
- 초기화 *callback 메서드 호출
- 사용
- 소멸 전 callback 메서드 호출
- 스프링 종료
*callback 메서드 : 특정 이벤트나 조건이 발생했을 때 시스템이나 프레임워크에 의해 자동으로 호출되는 메서드
Bean Scope
빈 스코프는 빈의 생명 주기와 사용 범위를 정의합니다.
Spring에서 제겅하는 주요 Scope
- singleton
- prototype
- request
- session
- globalSession
728x90