[Spring] Bean 스코프란?

호두마루·2023년 10월 16일
0

Spring

목록 보기
11/17

Spring에서 등장하는 또 다른 개념은 빈 스코프이다.
Scope, 즉 범위라는 뜻이며 빈이 존재할 수 있는 범위이다.
빈 스코프에는 몇가지 종류가 있다.

간단히 아래 코드부터 보자면,

@Scope가 사용된 클래스와 그렇지 않은 클래스 두가지를 작성하고 각각 3번씩 호출해보았다.

콘솔창에 결과는 위와 같다.
Normalclass()의 경우, 같은 해시코드가 출력된다.
그러나,PrototypeClass()는 호출할 때마다 해시코드가 달라진다.

1. 싱글톤(Singleton) 스코프

기본적으로 모든 Bean은 singleton이다.
하나의 Bean에 대해 Spring 컨테이너 내에 단 하나의 객체만 존재해야한다는 것이다.

2. 프로토타입(Prototype) 스코프

모든 요청에 대해 새로운 객체를 생성하는 것이다.

사용은 위 사진에 나와있듯

@Scope(value = configuarableBeanFactory.SCOPE_PROTOTYPE)

의 형식이다.

Bean 참조가 이루어질 때마다 새로운 인스턴스가 생성된다.
따라서, 생성되는 인스턴스는 여러개가 될 수 있다.

3. 웹 스코프

웹에서 사용되는 스코프도 있는데, 크게 다루진 않는다.

0개의 댓글