除了附加功能外。两者的重要区别是关于单例bean如何被加载。
bean工厂延迟加载所以bean,直到getBean()方法被调用的时候才会创建bean的实例对象。
ApplicationContext在启动后预载入所有单例bean,需要的时候直接getBean()取出即可,这样可以确保应用不需要等待他们被创建。
注:1. bean工厂的new XmlBeanFactory在spring3.1后就过期了,不在提倡。ApplicationContext占内存,但是快,而且现在硬件内存大便宜,所以都推荐使用ApplicationContext
2. 说的是单例bean。如果不是单例,ApplicationContext也不会创建bean。即关系到bean的作用域 scope属性
<bean id="lowerLetter" scope="prototype" class="top.chgl16.springStudy3.letter.LowerLetter">
<!-- scope="singleton 意思在spring ioc容器每一个bean定义对应一个对象实例, scope=“prototype”意思的一个bean定义对应多个对象实例-->
<property name="str" value="ABC"></property> <!-- spring中的类都叫bean,property是给类成员初始化 -->
</bean>