Spring 공부하기!

[Spring] 스프링의 싱글톤(Singleton)과 프로토타입(Prototype)의 차이점!

hyer!! 2021. 2. 22. 17:55

 

 

싱글톤(Singleton) 

스프링 컨테이너에서 생성된 빈(Bean) 객체인 경우 동일한 타입에 대해서는 기본적으로 한 개만 생성이 되며, getBean() 메서드로 호출될 때 객체가 반환된다. 스프링의 디폴트 값은 싱글톤이다.

즉, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 객체를 리턴한다.

싱글톤을 사용하게 되면 메모리 낭비가 줄어들게 된다. 하지만 싱글턴 패턴을 사용하게 되면 유연성이 떨어지게 된다는 단점이 있다.

 

 

 

 

프로토타입(Prototype)

싱글톤과 반대의 개념으로  이 경우 개발자가 별도로 설정해줘야 되는데,

스프링 설정 파일에서 빈(Bean) 객체를 설정할 때 scope속성을 설정해 주면 된다.

즉, 컨테이너에 빈을 요청할 때마다 매번 새로운 객체를 만든다.

 

<bean id="prototypeBean" class="com.hr.prototypeBean" scope="prototype">
	
    <constructor-arg ref="otherBean"/>
    <property name="otherBean" ref="otherBean"/>
    
</bean>

 

 

 

1년만 버티자!