📅  最后修改于: 2023-12-03 15:05:16.476000             🧑  作者: Mango
Spring是一个流行的Java应用程序框架,它提供了一种轻量级且灵活的方式来开发应用程序。在Spring中,有两个核心接口来管理和装配对象:BeanFactory 和 ApplicationContext。这两个接口之间有很多区别,本文将逐一介绍。
BeanFactory接口是Spring框架的核心接口之一,它是提供基本的IoC容器支持的轻量级接口。BeanFactory只提供了Spring IoC容器的基本功能,它对Spring IoC容器的核心主要是Bean的创建、装配和维护。
BeanFactory通过读取配置文件或者注解来加载bean,可以让我们在运行时动态装配关系,控制对象之间的依赖关系。BeanFactory在工厂模式的基础上,可以动态地创建对象。
// 创建一个BeanFactory实例
Resource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
// 获取一个Bean实例
HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");
obj.getMessage();
ApplicationContext是BeanFactory接口的子接口,是Spring框架运行时IoC容器的实现,派生自BeanFactory接口。ApplicationContext包含了BeanFactory的所有功能,是BeanFactory的超集,它不仅加载Bean的配置信息,同时也支持AOP、事务处理、国际化消息处理等高级特性。
// 加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// 获取Bean实例
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();