1. **빈의 정의**: 스프링 빈은 스프링 컨테이너(ApplicationContext)에 의해 생성되고 관리되는 객체입니다. 이러한 빈은 통 비즈니스 로직을 담고 있는 컴포넌트나, 데이터 접근, 서비스 레이어 등을 담당합니다.
2. **빈의 생성**: 빈은 보통 `@Component`, `@Service`, `@Repository`, `@Controller` 등의 애노테이션을 통해 클래스 레벨에서 선언됩니다. 또한, XML 설정이나 자바 설정을 통해서도 빈을 생성할 수 있습니다.
3. **빈의 라이프사이클**: 스프링 컨테이너가 시작될 때, 빈은 생성되고 의존성이 주입됩니다. 컨테이너가 종료될 때, 빈은 소멸됩니다.
4. **의존성 주입(Dependency Injection)**: 빈은 필요한 다른 빈을 스프링 컨테이너로부터 자동으로 주입받을 수 있습니다. 이는 `@Autowired` 애노테이션을 통해 이루어집니다.
5. **싱글턴과 프로토타입 스코프**: 스프링에서 빈은 기본적으로 싱글턴 스코프를 가집니다. 이는 하나의 빈 인스턴스만 생성하여 재사용하는 것을 의미합니다. 프로토타입 스코프도 있는데, 이 경우에는 빈을 요청할 때마다 새로운 인스턴스가 생성됩니다.
6. **빈과 컴포넌트**: `@Component`는 빈을 생성하는 가장 기본적인 애노테이션입니다. 이외에도 `@Service`, `@Repository` 등이 있으며, 각각의 애노테이션은 특별한 용도나 추가적인 메타데이터를 제공합니다.
7. **자원 효율성**: 싱글턴 스코프를 사용하면, 메모리와 리소스를 효율적으로 사용할 수 있습니다. 이는 애플리케이션의 성능을 향상시키는 요소 중 하나입니다.
'spring' 카테고리의 다른 글
ThreadLocal: 자바 멀티스레딩 환경에서의 데이터 격리와 안전성 (1) | 2024.01.14 |
---|---|
스프링 프레임워크의 핵심 컴포넌트와 패턴 이해하기 (0) | 2023.10.24 |
스프링에서 빈(Bean)과 싱글턴 패턴: 오브젝트 매퍼를 어떻게 관리할까? (0) | 2023.09.12 |
스프링 부트에서 클라이언트 요청부터 응답까지: AOP와 인터셉터의 역할 (0) | 2023.08.12 |
스프링 시큐리티에서 인증(Authentication)과 권한(Authorization) 차이 (0) | 2023.08.09 |