顶层接口BeanFactory ApplicationContext
bean信息解析到BeanDefinition
public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccessor
implements BeanDefinition, Cloneable {
通过BeanDefinitionRegistry将这些bean注册到beanFactory中
public interface BeanDefinitionRegistry extends AliasRegistry
具体实现类
public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory
implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(64);
public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport implements ConfigurableBeanFactory {
protected <T> T doGetBean(
final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly)
throws BeansException {
spring在调用其getBean时候是自动调用它的getObject,这在AbstractBeanFactory.getObjectForBeanInstance中有