Spring Bean工厂的接口

目录

1、BeanFactory接口

2、AutowireCapableBeanFactory接口

3、ListableBeanFactory接口

 4、HierarchicalBeanFactory接口 

5、ConfigurableBeanFactory接口

6、ConfigurableListableBeanFactory接口

 7、Spring bean工厂接口之间的继承关系


Spring bean工厂接口使用了设计模式中的简单工厂模式,所有的接口都以Factory结尾。

1、BeanFactory接口

Spring中的BeanFactory是bean工厂的顶级接口,它定义了bean工厂的基本职能。具有方法如下:

Spring Bean工厂的接口

 

2、AutowireCapableBeanFactory接口

AutowireCapableBeanFactory接口是BeanFactory的子接口,它扩展了BeanFactory的功能,使bean工厂对bean具有自动注入的功能。在这个接口中定义了5种bean的依赖注入策略分别是:

  1. AUTOWIRE_NO:不自动注入
  2. AUTOWIRE_BY_NAME:按照bean属性的名称注入
  3. AUTOWIRE_BY_TYPE:按照bean属性的类型注入
  4. AUTOWIRE_CONSTRUCTOR:通过bean的构造器注入
  5. AUTOWIRE_AUTODETECT:自动侦测注入(已经废弃)

Spring Bean工厂的接口

3、ListableBeanFactory接口

ListableBeanFactory作为BeanFactory的子接口,扩展了其功能,可以枚举bean工厂中所有的bean实例。预加载所有bean定义的bean工厂(例如基于xml配置的工厂)可以实现这个接口。(看下图,嘻嘻)

Spring Bean工厂的接口

 4、HierarchicalBeanFactory接口 

HierarchicalBeanFactory作为BeanFactory的子接口,扩展了BeanFactory的功能,使bean工厂具有了父子层次关系。

Spring Bean工厂的接口

getParentBeanFactory()方法用于获取父bean工厂。

containsLocalBean(String)方法用于判断该bean工厂中是否存在指定的bean,不会去父bean工厂中查找。

5、ConfigurableBeanFactory接口

ConfigurableBeanFactory可配置的bean工厂,继承了HierarchicalBeanFactory接口,使bean工厂具有可配置的功能。具有的方法如下:

Spring Bean工厂的接口

6、ConfigurableListableBeanFactory接口

 ConfigurableListableBeanFactory接口同时继承了ListableBeanFactory、AutowireCapableBeanFactory和ConfigurableBeanFactory,这意味着它同时具有这三个接口的功能,并在此基础上增加了额外的功能。

Spring Bean工厂的接口

 7、Spring bean工厂接口之间的继承关系

   在上边简单介绍了各个接口,下面的UML类图清楚的表示了它们之间的关系。

Spring Bean工厂的接口

最后,感谢IDEA这款强大的开发工具,节省了我画UML图的时间。