其他BeanFactory接口的实现类,会延迟到调用getBean()方法时构造,ApplicationContext的初始化时间会稍长些,调用getBean()是由于Bean已经构造完毕,速度会更快。因此大部分系统都是用ApplicationContext,而只在资源较少的情况下,才考虑使用BeanFactory。
具象化:
鱼香肉丝就是bean的名字,你点了,就交由厨师来做,但是这个前提是食材都得具备,这就是延迟初始化。
这家饭店就是上下文。
醋,油,水,都是现成的,初始化要有的,桌子,椅子也要现成的,这是Servlet中服务的一部分。
但是,菜品就不行了。
还有垃圾回收,那些服务员,一旦客人用完餐之后,也就断了索引,成为垃圾了,该收拾的收拾,然后倒进垃圾桶,厨房的剩菜同样是。
垃圾由谁来负责,当然是jvm,jvm是独立出来的,饭店是开在哪里的,当然是社会上,那社会上自然会有专门处理垃圾的企业来收这里的垃圾。这就是面向对象。