是的,Spring IOC容器中只存放单例Bean。因为IOC容器在初始化时,只会将scope等于singleton(单例)的对象进行实例化,而不会去实例化scope等于prototype的对象。
IOC容器在初始化的时候,会将所有的bean初始化在singletonObjects这个ConcurrentHashMap中,bean是单例的。在获取bean的时候,首先会从singletonObjects去取,如果scope是单例,则可以获取到bean,如果scope是多例,则获取不到bean,需要从一个叫mergedBeanDefinitions的ConcurrentHashMap中去获取bean的定义,然后再根据bean的scope去决定如何创建bean,如果scope为prototype,则每次都会创建一个新的实例。