单例bean和原型bean的区别
如下,user为原型bean ,user1为单例bean:
user和user1分别获取两次来输出,可以看到下面user打印了两个不同的对象,因为user1是单例的,怎么获取都是同一个对象;而user我们设置的是prototype,是原型bean,两次获取出来的bean是不同的
单例池
为了实现单例bean,就有了单例池,每次去获取这个bean的时候,就直接从单例池里面去获取。
单例池:spring源码中的定义为Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256)。
其意义即为存储spring生成的单例Bean。
如上,单例池实际在底层就是一个HashMap