오늘은 스프링(Spring) 프레임워크에서 빈(Bean)의 스코프에 대해 학습하였다.
싱글톤(Singleton) 스코프:
싱글톤 스코프는 스프링 컨테이너 내에서 해당 빈의 인스턴스가 하나만 생성되고, 여러 곳에서 공유하여 사용되는 스코프이다. 기본적으로 모든 빈은 싱글톤 스코프로 생성된다. 스프링 컨테이너가 시작될 때 해당 빈의 인스턴스가 생성되며, 컨테이너가 종료될 때 소멸된다.
프로토타입(Prototype) 스코프:
프로토타입 스코프는 빈의 인스턴스가 요청할 때마다 매번 새로운 인스턴스가 생성되는 스코프이다. 이는 각각의 요청 또는 사용마다 독립적인 인스턴스를 생성하고자 할 때 유용하다. 스프링 컨테이너는 프로토타입 빈을 생성하고 주입하며, 프로토타입 빈을 사용한 클라이언트는 해당 빈을 직접 관리해야 한다.
리퀘스트(Request) 스코프:
리퀘스트 스코프는 각각의 HTTP 요청마다 빈의 인스턴스가 생성되고, 해당 요청의 처리가 끝나면 인스턴스가 소멸되는 스코프이다. 주로 웹 애플리케이션에서 HTTP 요청 단위로 빈의 상태를 관리해야 할 때 사용된다. 해당 스코프는 웹 환경에서만 사용할 수 있다.
세션(Session) 스코프:
세션 스코프는 각각의 HTTP 세션마다 빈의 인스턴스가 생성되고, 해당 세션이 종료될 때 인스턴스가 소멸되는 스코프이다. 리퀘스트 스코프와 마찬가지로 웹 환경에서 사용되며, 각 세션마다 독립적인 빈 인스턴스를 관리할 수 있다.
글로벌 세션(Global Session) 스코프:
글로벌 세션 스코프는 포털 애플리케이션 등에서 사용되며, 하나의 포털 세션마다 빈의 인스턴스가 생성되고, 해당 세션이 종료될 때 인스턴스가 소멸되는 스코프이다.
각각의 스코프는 다양한 상황에서 빈의 라이프사이클과 인스턴스 관리를 제어하기 위해 사용된다. 스프링은 이러한 다양한 스코프를 지원하여 빈의 생성과 소멸을 효과적으로 관리할 수 있도록 도와준다. 프로젝트의 요구사항과 상황에 맞게 적절한 스코프를 선택하여 사용함으로써 애플리케이션의 효율성과 성능을 높일 수 있다.
'Spring' 카테고리의 다른 글
| 스프링부트 댓글 구현 예시 (0) | 2023.08.09 |
|---|---|
| Vue.js와 SpringBoot 연동하기 (0) | 2023.08.01 |
| 스프링부트를 빌드하고 터미널로 직접 실행해보자. (0) | 2023.07.31 |
| 인텔리제이에서 스프링부트 JSP 연동하기 (0) | 2023.07.27 |
| 최근 비밀번호 3개 저장 그리고 변경하려고하면 막는 메서드 구현 (0) | 2023.07.18 |