본문 바로가기
개발/스프링(Spring)

(Spring) Bean 범위(scope) 설정

by kakk789 2022. 5. 31.

Bean 범위 설정

singtone
: 하나의 Bean 정의에 대해 "하나의 객체만 존재" (기본 값) 
: 같은 객체를 모두가 공유함

prototype
: 하나의 Bean 정의에 대해 "다수의 객체가 존재 가능"
: 서로 다른 객체

request - 하나의 Bean 정의에 대해 "HTTP Request 생명주기 안에서는 단 하나의 객체만 존재"
session - 하나의 Bean 정의에 대해 "하나의 HTTP Session 생명주기 안에서는 단 하나의 객체만 존재"
global session - 하나의 Bean 정의에 대해 "하나의 global HTTP Session 생명주기 안에 단 하나의 객체만 존재"

1. singleton

  • scope="singleton" (기본), 객체를 1개만 만들어 놓고 다 같이 사용 한다.
  • 하나의 Bean 정의에 대해 하나의 객체만 존재

singleton 설정

- kim1/kim2는 같은 객체를 공유 (주소 값 동일)

- 당연히 생성자도 1번만 실행 됨

	<bean id="kim" class="exam01.Person" scope="singleton">
		<property name="name" value="김유신"></property>
		<property name="age" value="20"></property>
	</bean>
		Person kim1 = (Person)context.getBean("kim");
		Person kim2 = (Person)context.getBean("kim");

2. prototype

  • 하나의 Bean 정의에 대해 다수의 객체가 존재 가능
	<bean id="kim" class="exam01.Person" scope="prototype">

prototype 설정

- kim1/kim2는 각각 다른 객체임 (주소 값 다름)

- 당연히 생성자도 각각 실행 됨

3. request

  • 하나의 Bean 정의에 대하 HTTP Request 생명주기 안에서는 단 하나의 객체만 존재

4. session

  • 하나의 Bean 정의에 대해 하나의 HTTP Session 생명주기 안에서는 단 하나의 객체만 존재

5. global session

  •  하나의 빈 정의에 대해 하나의 global HTTP Session 생명주기 안에 단 하나의 객체만 존재
반응형

'개발 > 스프링(Spring)' 카테고리의 다른 글

(Spring) @ReqeustMapping GET/POST 방식 설정  (0) 2022.06.05
(Spring) MVC  (0) 2022.06.02
(Spring) 스프링 객체 생성 방법  (0) 2022.06.01
Spring  (0) 2022.05.30
(Spring) 의존관계 설정 방법  (0) 2022.05.26

댓글