본문 바로가기

자바/스프링

Spring Bean Scope

Bean Scope

1. singleton

 - spring container 가 생성 될 때 한번 생성 됨, container가 소멸 될 때 bean도 소멸 됨

 - 생성 된 하나의 인스턴스는 single bean cache에 저장 되고, 해당 bean의 참조가 있으면 cache에서 객체를 반환 함

 - default 값

2. prototype

 - 모든 요청에서 새로운 인스턴스를 생성해서 반환

 - 사용이 끝나면 정상적인 방식으로 Garbage Collector에 의해 제거 됨

3. request

 - 하나의 HTTP request에 하나의 bean이 생성 됨

 - web-aware spring application context 안에서 유효함

4. session

 - 하나의 HTTP session에 하나의 bean이 생성 됨

 - web-aware spring application context 안에서 유효함

5. global session

 - 하나의 global HTTP session에 하나의 bean이 생성 됨

 - portlet based web application 안에서 유효함


singleton을 사용하지 않는 경우

1. 쓰기가 가능한 상태를 지닌 객체

 - 쓰기가 가능한 상태가 많아서 동기화 비용이 객체 생성 비용보다 큰 경우

2. 상태가 노출되지 않은 객체

 - 내부 상태를 외부에 노출하지 않는 빈을 참조하여 다른 의존 객체와는 독립적으로 작업을 수행하는 객체


[참조]

https://gmlwjd9405.github.io/2018/11/10/spring-beans.html

'자바 > 스프링' 카테고리의 다른 글

Spring AOP  (0) 2019.04.01
Spring Transaction  (0) 2019.03.15
IoC(Inversion of Controll) - 제어의 역전  (0) 2019.02.13
DispatcherServlet  (0) 2019.02.11
Spring Bean 설정(XML)  (0) 2016.06.09