• 자바 싱글톤과 스프링 싱글톤 차이
스프링 싱글톤은 스프링 IoC 컨테이너당 객체 인스턴스가 하나
자바 싱글톤은 JVM당 인스턴스가 하나
• 싱글톤과 프로토타입 차이
기본적으로 스프링에서 생성되는 빈들은 싱글톤이다
빈을 여러번 호출해도 같은 인스턴스를 가져온다
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
빈 위에 이렇게 Scope 어노테이션을 붙이면 프로토타입 객체로 생성되어서 빈을 가져올때마다 다른 인스턴스를 가져온다
@Component
class NormalClass{
}
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
class PrototypeClass{
}
@Configuration
@ComponentScan
public class SingletonClass {
public static void main(String[] args) {
AnnotationConfigApplicationContext context
= new AnnotationConfigApplicationContext(SingletonClass.class);
System.out.println(context.getBean(PrototypeClass.class));
System.out.println(context.getBean(PrototypeClass.class));
System.out.println(context.getBean(PrototypeClass.class));
System.out.println(context.getBean(NormalClass.class));
System.out.println(context.getBean(NormalClass.class));
System.out.println(context.getBean(NormalClass.class));
}
}
사용자 정보가 유지되야하는 빈을 만들때는 프로토타입을 이용해서 사용자마다 다른 빈을 생성할 수 있다
'유데미 스프링' 카테고리의 다른 글
빈 관련 어노테이션 (0) | 2024.03.20 |
---|---|
PostConstruct, PreDestroy (0) | 2024.03.20 |
지연 초기화, 즉시 초기화 (0) | 2024.03.20 |
스프링 용어 정리 (0) | 2024.02.25 |
의존성 주입 (0) | 2024.02.24 |