BeanFactory,它是一个接口工厂类,用于管理spring中的Bean。在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是常用的一个,该实现将以XML方式描述组成应用的对象及对象间的依赖关系。XmlBeanFactory类将持有此XML配置元数据,并用它来构建一个完全可配置的系统或应用。
- BeanFactory接口
- 是Spring bean容器的根接口.提供获取bean,是否包含bean,是否单例与原型,获取bean类型,bean 别名的方法
- BeanFactory的三个子接口
- HierarchicalBeanFactory:提供父容器的访问功能
- ListableBeanFactory:提供了批量获取Bean的方法
- AutowireCapableBeanFactory:在BeanFactory基础上实现对已存在实例的管理
- ConfigurableBeanFactory
- ConfigurableListableBeanFactory
- 继承了上述的所有接口,增加了其他功能:比如类加载器,类型转化,属性编辑器,BeanPostProcessor,作用域,bean定义,处理bean依赖关系, bean如何销毁…
- 实现类DefaultListableBeanFactory
- 实现了ConfigurableListableBeanFactory,实现上述BeanFactory所有功能。它还可以注册BeanDefinition
ClassPathXmlApplicationContext是BeanFactory的一个典型的实现,同时它也是 ApplicationContext的子类,ClassPathXmlApplicationContext从 xml 的配置文件中获取 bean 并且管理他们。
public static void main(String[] args) throws Exception {
BeanFactory bf = new ClassPathXmlApplicationContext("application.xml");
UserHandler userHandler = (UserHandler) bf.getBean("userHandler");
log.info("handler:{}",userHandler);
}
xml配置
<bean id="userHandler" class="fun.vyse.cloud.UserHandler">
<property name="userService" ref="userService"/>
</bean>
文章参考:【Spring4揭秘 BeanFactory】基本容器-BeanFactory
未完待续…