백엔드개발자/SPRING, JPA 등...
Bean Scope(빈 스코프)의 종류
보혀니
2022. 2. 21. 01:21
말그대로 빈이 사용되어지는 범위(?)인데, 빈이 앱이 구동되는 동안 한개만 만들어서 쓸 것인지 HTTP요청마다 생성해서 쓸 것인지 등등를 결정하는 것이 스코프임.
보통의 스프링 빈은 스프링 앱이 구동 될때 한번에 ApplicationContext에서 한 번에 모두 생성해서 하나의 클래스는 한 개의 빈만 가지지만 (Singleton), 때에 따라서는 HTTP요청마다 (Request) 다른 빈을 생성해서 쓸건지, 매번 사용될 때 마다 (Prototype) 빈을 생성해서 쓸건지 설정해서 쓸 수도 있다.
- 싱글톤
- Spring 프레임워크에서 기본이 되는 스코프
- 스프링 컨테이너의 시작과 종료까지 1개의 객체로 유지됨
- 프로토타입
- 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 스코프
- 요청이 오면 항상 새로운 인스턴스를 생성하여 반환하고 이후에 관리하지 않음
- 프로토타입을 받은 클라이언트가 객체를 관리해야 함
- 웹
- request: 각각의 요청이 들어오고 나갈때가지 유지되는 스코프
- session: 세션이 생성되고 종료될 때 까지 유지되는 스코프
- application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프
출처: https://mangkyu.tistory.com/117 [MangKyu's Diary]