본문 바로가기

BackEnd/Spring

빈 객체 범위(scope)- 싱글톤, 프로토타입

반응형

1. 싱글톤(singleton) 범위를 가진 빈


별도 설정을 하지 않을 경우 스프링은 빈 객체를 한 번만 생성한다. getBean 메서드를


두 번 이상 호출해서 빈을 구하면 매번 동일한 빈 객체를 리턴한다. 


즉 여러번 빈을 구해와도 같은 객체를 참조하게 되는것이다.


1
2
3
4
5
ConnPooH p1 = ctx.getBean(pool1, ConnPool1 .class);
ConnPooH p2 = ctx.getBean(pool1, ConnPool1 .class);
 
// p1 == p2 는 true, 즉, 이과 p2는 동일한 객체를 참조함
cs


스프링 컨테이너가 초기화되고 종료되기 직전까지 빈 객체는 한 개만 생성되는데


즉 스프링 컨테이너를 기준으로 특정한 빈 객체는 한 개만 존재하므로, 싱글톤


(singleton) 범위를 갖는다고 한다.


2. 프로토타입(prototype) 범위를 가진 빈


프로토타입(prototype) 범위의 빈은 객체의 원형(즉, 프로토타입)으로 사용되


는 빈으로서, 프로토타입 범위 빈을 getBean() 등을 이용해서 구할 경우 스프링 컨테이


너는 매번 새로운 객체를 생성한다. 즉, 스프링 컨테이너는 매번 새로운 객체를 생성하기 때문에


모두 다른 객체가 된다.



반응형

'BackEnd > Spring' 카테고리의 다른 글

스프링에서 context에 대한 이해  (0) 2020.01.14
스프링 시큐리티란?  (0) 2019.12.17
스프링과 DI(Dependency Injection)- 의존 주입과의 관계  (0) 2019.07.19
컨테이너  (0) 2019.07.18
메이븐  (0) 2019.07.18