본문 바로가기

개발/Spring

IoC - 빈의 스코프

반응형

스코프 
 - 싱글톤
 - 프로토타입 : 새로운 인스턴스를 만들어서 써야하는 스코프

1. 스코프 - 싱글톤 

빈 두개 설정

 

ApplicationRunner를 상속한 AppRunner 를 만들어 생성된 빈을 확인

실행결과 
 - 같은 빈인 것을 확인 할 수 있다.

 

거의 대부분은 싱글톤으로 사용하겠지만 
빈을 계속 바꿔주어야 하는경우엔 프로토타입 스코프를 설정하여 매번 새롭게 빈을 만들도록 한다.

2. 스코프 - 프로토타입 
 - 스코프 프로토 타입 설정 : 빈을 받아 올때만 새롭게 생성한다.

 확인 하기 위해 AppRunner 클래스 변경 

실행하여 확인
 - Proto는 매번 다른 Bean인 것이 보이고 Single는 하나의 Bean 인 것을 확인 할 수 있다.

 

그런데?? 
 프로토 타입 스코프의 빈에서 싱글톤 스코프의 빈을 사용하는 것은 문제가 되지 않는다.
 > 어차피 프로토 타입의 빈이 계속 생겨도 안에서 사용하는 싱글톤 빈은 하나기 때문에 문제 없음!
 그러나??
 싱글톤 타입 스코프의 빈에서 프로토 타입의 스코프의 빈을 사용하는 것은 ???

확인 해보기!

결과는? 
 싱글톤 타입의 빈 안에 있는 프로토타입의 빈은 하나만 생성된다.

>> 싱글톤 빈 안에서 프로토 타입의 빈을 여러 개 만드려면 proxyMode를 설정한다. 

반응형

'개발 > Spring' 카테고리의 다른 글

IoC - Environment - 프로퍼티  (0) 2021.04.11
IoC - Environment - 프로파일  (0) 2021.04.10
IoC - Component, 컴포넌트 스캔  (0) 2021.04.06
IoC - Autowire(오토와이어)  (0) 2021.04.04
IoC - ComponentScan  (0) 2021.04.04