两者都是可以通过xml配置文件加载bean, ApplicationContext比BeanFacotry提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext启动之后,就会初始化所有bean并绑定完成,这样有利于检查所依赖属性是否注入,但相对需要较长的时间;
BeanFactory factory = new XmlBeanFactory(new ClassPathResource
( "beans.xml"));
BeanFactory factory = new XmlBeanFactory(new FileSystemResource
( "beans.xml"));
ApplicationContext ctx = new ClassPathXmlApplicationContext
("bean.xml");
ApplicationContext ctx = new FileSystemXmlApplicationContext
("beans.xml");