빈 스코프란?
빈이 존재할 수 있는 범위.
스프링 빈이 기본적으로 싱글톤 스코프로 생성된다.
싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지
프로토타입 : 빈의 생성과 의존관계 주입까지만 관여하고 이후엔 관리 X
웹 관련 스코프 - request : 웹 요청이 들어오고 나갈때 까지 유지
- session : 웹 세션이 생성되고 종료될 떄 까지 유지
- application : 웹의 서블릿 컨텍스와 같은 범위로 유지
설정방법은 아래와 같다
@Scope("prototype")
@Component
public class ScopeExample{}
// 수동 등록
@Scope("prototype")
@Component
ScopeExample scpoeBean() {
return new ScopeExample();
}
* 프로토타입 스코프
싱글톤 스코프 (기본값) 은 하나의 인스턴스만 스프링 컨테이너에 들어있는게 보장됬다.
반면 프로토타입 스코프는 조회할 때 마다 항상 새로운 인스턴스를 생성해 반환한다.
스프링 컨테이너는 인스턴스 생성, DI, 초기화 까지 진행 후 클라이언트에 반환. 이후엔 관리하지 않는다
--> @PreDestory 함수가 실행되지 않아 만약 필요하다면 클라이언트가 진행해야 함.
'코딩 > JAVA 공부' 카테고리의 다른 글
| [Spring] JSP 와 Servlet, JSP 를 활용한 MVC 구조 (0) | 2023.06.04 |
|---|---|
| [Spring] 웹애플리케이션 이해 - Servlet (0) | 2023.06.03 |
| [Spring] 다중 등록 빈 의존 관계 문제 (0) | 2023.05.19 |
| [Spring] DI 옵션 처리, 롬복과 최신 트랜드 (0) | 2023.05.16 |
| [Spring] 의존성 관계 자동 주입 (1) | 2023.05.14 |