Singleton
Spring 컨테이너당 하나의 빈을 생성하는 것을 의미한다.
자바의 싱글톤과 다른 점은 자바의 싱글톤은 JVM 수준에서 하나의 싱글톤이 존재하지만 스프링의 싱글톤은 스프링 컨테이너 당 하나의 싱글톤이 있다는 것이 다르다.
prototype
스프링 컨테이너를 통해 빈을 주입받을 때마다 새로운 인스턴스가 생성됨을 의미한다. (context.getbean("..."))
호출하는 코드가 해당 Bean의 다중 메서드 호출 중 몇몇 개인화된 세션정보를 설정하길 원할 때 사용된다. 이 말은 싱글톤은 특수한 세션 처리를 할 수 없음을 의미한다. 따라서 싱글톤은 stateless 하다고 하고 프로토타입은 stateful 하다고들 한다.
@Scope의 사용
@Configuration 클래스의 팩토리 메서드에서 사용되는 경우
여기서 팩토리 메서드는 주로 @Bean을 사용한 메서드를 의미한다.
@Component 클래스에서 사용되는 경우
해당 클래스는 만약 @ComponentScan이 정의한 패키지 정보와 @Configuration가 선언되어있다면 해당 패키지 정보에 포함되어있는
@Component 클래스에서 Scope을 지정할 수 있다.
Code Link
https://github.com/mike6321/Spring/tree/master/SpringBoot/demoapplicationcontextexercise
'Spring > Spring' 카테고리의 다른 글
(SPRING) getBean()에 대해서 (0) | 2020.03.23 |
---|---|
(SPRING) Dynamically register bean (0) | 2020.03.22 |
(SPRING) Spring ApplicationContext의 내부 (2) (0) | 2020.03.01 |
(SPRING) Spring ApplicationContext의 내부 (1) (1) | 2020.03.01 |
(SPRING) IoC 컨테이너 - Environment_프로파일 (0) | 2020.02.14 |