spring源码分析--BeanFactory(一)

本文介绍了Spring容器的核心——BeanFactory,包括其在Spring中的作用、两种主要类型的容器BeanFactory和ApplicationContext。文章详细阐述了BeanFactory的继承结构,如BeanDefinition的类层次关系,并分析了BeanFactory的主要实现类,如HierarchicalBeanFactory、SingletonBeanRegistry、ListableBeanFactory、AutowireCapableBeanFactory和ConfigurableListableBeanFactory,特别强调了BeanFactory在依赖注入和管理Bean生命周期中的关键角色。
摘要由CSDN通过智能技术生成

1.什么是Spring容器

Spring容器是Spring的核心,它可以创建对象,把他们关联在一起,配置各个对象,并管理每个对象的整个生命周期。Spring容器使用依赖注入(DI)来管理组成一个应用程序的组件。这些对象被称为Spring Beans (一个对象就是一个Bean)。

Spring中有两种容器:

① BeanFactory 一个最简单的Spring容器,给依赖注入(DI)提供了基础的支持。

② ApplicationContext  此容器添加以一些企业需要用到的东西,更加全面。它包含了BeanFactory容器中的东西。

2.BeanFactory继承关系

BeanFactory继承结构

 

 

Bean定义的类层次关系图:

BeanFactory接口实现类: 

3.源码分析

  1. BeanFactory---->ConfigurableListableBeanFactory
  2. Beanfactory ---->AbstractAutowireCapableBeanFactory

BeanFactory提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范。

public interface BeanFactory {

	//使用转译符"&"来获取BeanFatory本身
	String FACTORY_BEAN_PREFIX = "&";
   
     //根据name获取Bean
    Object getBean(String name) throws BeansException;

    //根据name ,class类型获取Bean,其中name和class类型不匹配会报错
    <T> T getBean(String name, Class<T> requiredType) throws BeansException;

	<T> T getBean(Class<T> requiredType, Object... args) throws BeansException;


	<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType);


	<T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);
  
    //根据name判断是否包含Bean
	boolean containsBean(String name);

	//检测是否是单例,JDK1.8模式是true
	boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

	//检错是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值