Spring之BeanFactory学习笔记

BeanFactory是Spring中访问bean容器的根接口,定义了IoC容器的基本服务契约。FactoryBean则是一种特殊的bean,能够产生其他bean。文章详细介绍了BeanFactory的注解、参数、方法,以及其实现,如DefaultListableBeanFactory和XmlBeanFactory,它们分别提供了IoC容器的核心功能和XML配置的支持。
摘要由CSDN通过智能技术生成

类图:

 

一.注解

The root interface for accessing a Spring bean container.

BeanFactory:是获取IOC容器的根接口,提供了IoC容器所应该遵循的最基本的服务契约。

IoC容器实际上代表一系列功能各异的容器产品,是容器的功能有大有小,有各自的特点,但要满足一些基本特性,BeanFactory就定义了那些最基本的特性,因此可以说Spring中所有的容器实现追根溯源都实现了BeanFactory。

二.参数

String FACTORY_BEAN_PREFIX = "&";

用户使用容器时,可以使用转义符&来得到FactoryBean本身, 用来区分通过容器获取产生的对象和获取FactoryBean本身。

对FactoryBean转义的定义,因为如果使用bean名字检索FactoryBean得到的对象是工厂生成的对象,如果需要得到工厂本身,需要转义。

BeanFactory和FactroyBean之间的区别:

BeanFactory是IoC容器或对象工厂,FactoryBean是bean,但不是简单的bean,而是能产生bean的bean,是一个能产生或修饰对象生成的工厂Bean。

具体代码中的实例:

(待补充)

三.方法

主要定义了一些获取bean、判断bean是否存在、判断bean的属性、判断bean的类型、获取bean的别名的方法。

1.Object getBean(String name) throws BeansException;

这个方法是使用IoC容器API的主要方法,通过这个方法,可以取得IoC容器中管理的bean,bean的取得是通过指定名字来索引的。

2.<T> T getBean(String name, Class<T> requiredType) throws BeansException;

如果需要在获取bean时对bean的类型进行检查,使用这个方法,与上面那个getBean类似,不同的是增加了对Bean检索的类型的要求。

3.boolean containsBean(String name);

让用户判断容器是否含有指定名字的Bean

4.boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

查询指定名字的Bean是否是Singleton类型的Bean。对于Singleton属性,用户可以在BeanDefinition中指定。

5.boolean isPrototype(String name) throws NoSuchBeanDefinitionException;

查询指定名字的Bean是否是prototype类型的,与Singleton属性一样,这个属性也可以由用户在BeanDefinition中指定。

6.

boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException;

查询指定了名字的Bean的Class类型是否是特定的Class类型。这个Class类型可以由用户来指定。

7.

Class<?> getType(String name) throws NoSuchBeanDefinitionException;
Class<?> getType(String name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException;

查询指定名字的Bean的Class类型。

8.String[] getAliases(String name);

查询指定名字的鹅Bean的所有别名,这些别名都是用户在BeanDefinition中定义的。

四.具体的实现有哪些

常用的有:

1.DefaultListableBeanFactory:

包含了基本IoC容器所具有的重要功能,在Spring中,实际上是把DefaultListableBeanFactory作为一个默认的功能完整的IoC容器来使用的。

2.XmlBeanFactory

继承了DefaultListableBeanFactory的同时,增加了新功能:可以读取以XML文件方式定义的BeanDefinition。在XmlBeanFactory中初始化了一个XmlBeanDefinitionReader对象,由它来对XML形式的信息进行处理。

3......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值