1. 기본적으로 컨테이너에 한 개의 빈 객체를 생성하여 재사용된다.( per Container )
2. 빈의 스코프(scope)를 설정할 수 있는 방법을 제공한다.
3. 태그의 scope 속성을 사용한다.
< bean id=" " class=" " scope="설정값" />
📌 scope 설정 가능한 값
- scope=”singleton” (기본)
⇒ 빈을 한번만 생성하고 재사용함
⇒ 필요시 getBean()할 때 이전에 생성된 빈을 반환 ⇒ 따라서 하나의 빈으로 재사용한다.
⇒ 여러 사용자가 하나의 빈을 공유해서 사용하게 된다. - scope=”prototype”
⇒ 빈을 매번 생성
⇒ 필요시 getBean()할 때 새롭게 객체생성해서 빈을 반환 ⇒ 여러 사용자가 빈을 공유 불가
⇒ 자신만의 특정 데이터를 관리할 수 있다. - scope=”request” ⇒ 웹 환경의 request scope와 일치
- scope=”session” ⇒ 웹 환경의 session scope와 일치
- scope=”application” ⇒ 웹 환경의 application scope와 일치
- scope=”websocket” ⇒ 웹 환경의 websocket 연동시 필요 ⇒ 클라이언트와 서버가 계속 연결 유지
💻 singleton 결과
singleton은 하나의 인스턴스로 여러 사용자가 사용하기 때문에 공유된다.
💻 prototype 결과
prototype은 매번 생성되기 때문에 자신만의 데이터 유지가 가능하다.
'Framework > SPRING FRAMEWORK' 카테고리의 다른 글
@Autowired (0) | 2023.08.30 |
---|---|
어노테이션+최소한의 XML Configuration Metadata 설정방법 (0) | 2023.08.30 |
자바의 싱글톤패턴 구현 (0) | 2023.08.29 |
TestMain이 아닌 일반클래스(빈, UserService)에서 사용하는 방법 (0) | 2023.08.29 |
I18N - 국제화(지역화) (0) | 2023.08.29 |