赞
踩
DefaultListableBeanFactory 是 Spring 框架中的一个核心类,它实现了 BeanFactory、HierarchicalBeanFactory 和 ListableBeanFactory 接口,同时也间接实现了 BeanDefinitionRegistry 和 AliasRegistry 接口。DefaultListableBeanFactory 提供了完整的 bean 工厂功能,包括注册、定义、配置和管理 bean,还支持 bean 的别名设置。
以下是 DefaultListableBeanFactory 的一些关键功能:
DefaultListableBeanFactory 通常不会直接用于应用程序代码,而是作为更高级别工厂类(如 XmlBeanFactory 或 AnnotationConfigApplicationContext)的基础。这些高级工厂类提供了更简洁的配置方式,如 XML 配置或 Java 配置。
这里就不作源码解释了,因为大部分核心源码都在其继承的几个父类中,请看之前的文章有介绍
import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; public class DefaultListableBeanFactoryExample { public static void main(String[] args) { // 创建 DefaultListableBeanFactory 实例 DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); // 创建并注册一个 RootBeanDefinition RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleBean.class); beanFactory.registerBeanDefinition("simpleBean", beanDefinition); // 获取并使用 bean SimpleBean simpleBean = (SimpleBean) beanFactory.getBean("simpleBean"); simpleBean.doSomething(); } } class SimpleBean { public void doSomething() { System.out.println("Doing something in SimpleBean"); } }
在这个示例中,我们创建了一个 DefaultListableBeanFactory 实例,并手动注册了一个 SimpleBean 类型的 bean 定义。然后,我们从工厂中获取了这个 bean 的实例,并调用了它的方法。
虽然手动使用 DefaultListableBeanFactory 是可能的,但在实际应用中,你通常会使用 Spring 提供的更高级别的上下文类(如 ApplicationContext),因为它们提供了更多的功能和便利性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。