spring singleton scope 和我们理解的传统的单例模式有很大不同。
1. 我们理解的单例模式是指某类型的实例在同一个context中只有一个实例。
2.spring singleton scope 是指在同一个context中, 同一个beanName只对应一个实例。
也就是说,对于同一类型的bean而言,在spring中是可以存在多个实例的,但是它们的beanName要保证不同。
比如在一个@Configuration类中,可以定义多个BeanDefinition
@Bean public Student student(){ return new Student(); } @Bean public Student student2(){ return new Student(); } @Bean public Student student3(){ return new Student(); }
这些实例的beanName 分别是 student student1 和student2