系列文章主页
前置知识
组件扫描:自动发现应用容器中需要创建的Bean。
自动装配:自动满足Bean之间的依赖。
BeanFactory:Spring容器的基石,顶级容器接口
在第一个章节中,我们提到过,在Spring官方文档中,称org.springframework.context.ApplicationContext
这个接口就代表了Spring的容器,在解释ApplicationContext
之前,必须要先介绍Spring容器的基石,BeanFactory
接口。ApplicationContext
就是继承了BeanFactory
接口的一种高级容器接口。而BeanFactory
是简单容器的代表,是Spring容器家族的基石,所有的容器都必须实现这个接口。
首先,先看一下BeanFactory
接口的源码。
package org.springframework.beans.factory;
public interface BeanFactory {
/**
* 对FactoryBean的转移定义,提供获取FactoryBean实例的方法。
* 如果定义bean时是通过工厂模式配置Bean的,那么通过bean的名字检索FactoryBean时
* 得到的会是FactoryBean生产出来的实例,如果想得到工厂本身,需要进行转义
*/
String FACTORY_BEAN_PREFIX = "&";
/**
* 不同的获取Bean的方法
*/
Object getBean(String name) throws BeansException;
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
Object getBean(String name, Object... args) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
/**
* 获取Bean的提供者(工厂)
*/
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);
<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);