ApplicationContext继承了BeanFactory接口,所以 ApplicationContext 包含 BeanFactory 的所有功能,除此之外它还提供了更多的功能。
BeanFactory 的实现是使用懒加载的方式,这意味着 beans 只有在我们通过 getBean() 方法直接调用它们时才进行实例化。
与 BeanFactory 懒加载的方式不同,ApplicationContext是预加载,每次容器启动时就会实例化所有的对象。
ApplicationContext 包含 BeanFactory 的所有特性,通常推荐使用前者。
实现 BeanFactory 最常用的 API 是 XMLBeanFactory:
public class HelloWorldApp{
public static void main(String[] args) {
XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("beans.xml"));
HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");
obj.getMessage();
}
}
public class HelloWorldApp{
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
}
}