1. 기본적으로 컨테이너에 한 개의 빈 객체를 생성하여 재사용된다.( per Container )

2. 빈의 스코프(scope)를 설정할 수 있는 방법을 제공한다.

3. 태그의 scope 속성을 사용한다.

< bean id=" "    class=" "    scope="설정값"   />   

 

 

 


 

📌 scope 설정 가능한 값

 

  1. scope=”singleton” (기본) 
    ⇒ 빈을 한번만 생성하고 재사용함
    ⇒ 필요시 getBean()할 때 이전에 생성된 빈을 반환    ⇒ 따라서 하나의 빈으로 재사용한다.
    ⇒ 여러 사용자가 하나의 빈을 공유해서 사용하게 된다.
  2. scope=”prototype” 
    ⇒ 빈을 매번 생성
    ⇒ 필요시 getBean()할 때 새롭게 객체생성해서 빈을 반환   ⇒ 여러 사용자가 빈을 공유 불가
    ⇒ 자신만의 특정 데이터를 관리할 수 있다.
  3. scope=”request”  ⇒ 웹 환경의 request scope와 일치
  4. scope=”session”  ⇒ 웹 환경의 session scope와 일치
  5. scope=”application”  ⇒ 웹 환경의 application scope와 일치
  6. scope=”websocket”  ⇒ 웹 환경의 websocket 연동시 필요 ⇒ 클라이언트와 서버가 계속 연결 유지

 


 

 

 


 

 

 

 


💻 singleton 결과
singleton은 하나의 인스턴스로 여러 사용자가 사용하기 때문에 공유된다.

 

 

 

 

 


 

 

 

 


💻 prototype 결과

prototype은 매번 생성되기 때문에 자신만의 데이터 유지가 가능하다.

xoo | 수진