BeanFactory :ioc容器或对象工厂
FactoryBean:产生或者修饰对象的工厂Bean ,实现与设计模式中的工厂模式和修饰器模式类似。
ApplicationContext和BeanFactory:
都可以获取Bean,ApplicationContext接口扩展于BeanFactory接口。
除了ApplicationContext提供的默写附加功能外,与BeanFactory的一个重要区别是,关于(singleton)单实例的Bean的载入,BeanFactory延迟加载所有的Bean,直到getBean()方法调用时,Bean才被创建。而ApplicationContext则是在启动时候就预加载了所有的Bean,通过预加载入单实例Bean,确保当需要使用时候他们已经准备好了,不需要等待他们被创建。(《Spring in action》)
在一个Bean的生命周期中,Spring可以在创建和拆解Bean时调用Bean的两个生命周期方法,init-methods在实例化时马上调用,destory-method在被删除之前调用。(例如在数据库使用中,可能需要初始化参数,和删除Bean之前需要close连接一样)