Spring中的BeanFactory对象实例化工厂详解
BeanFactory对象实例化工厂
BeanFactory及其子类是Spring IOC容器中最重要的一个类,BeanFactory由类名可以看出其是一个Bean工厂类,其实它确实是一个Bean工厂类,完成Bean的初始化操作。
Bean的初始化操作还是一个比较麻烦的操作,首先根据spring注入配置将bean初始化为单例或者原型,其次需要根据Bean的属性配置来完成Bean参数的注入配置,还有要解决单例模式下Bean的循环依赖的问题,原型模式下bean的循环依赖会直接报错。
BeanFactory接口及其实现类:
BeanFactory接口继承关系:
BeanFactory 是Spring bean容器的根接口.提供获取bean,是否包含bean,是否单例与原型,获取bean类型,bean 别名的api.
- AutowireCapableBeanFactory 添加集成其他框架功能.如果集成WebWork则可以使用Spring对Actions等进行管理.
- HierarchicalBeanFactory 提供父容器的访问功能
- ConfigurableBeanFactory 如名,提供factory的配置功能,眼花缭乱好多api
- ConfigurableListableBeanFactory 集大成者,提供解析,修改bean定义,并与初始化单例.
- ListableBeanFactory 提供容器内bean实例的枚举功能.这边不会考虑父容器内的实例.
BeanFactory提供的接口如下:
public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; //根据名称获取bean Object getBean(String name) throws BeansException; //根据名称及类型获取类 <T> T getBean(String name, Class<T> requiredType) throws BeansException; //根据类型获取类 <T> T getBean(Class<T> requiredType) throws BeansException; Object getBean(String name, Object... args) throws BeansException; <T> T getBean(Class<T> requiredType, Object... args) throws BeansException; boolean containsBean(String name); //单例判断 boolean isSingleton(String name) throws NoSuchBeanDefinitionException; //原型判断 boolean isPrototype(String name) throws NoSuchBeanDefinitionException; //类型判断 boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException; Class<?> getType(String name) throws NoSuchBeanDefinitionException; String[] getAliases(String name); }
总结:接下来我们通过几篇博客来介绍BeanFactory所提供的Bean实例化操作。
到此这篇关于Spring中的BeanFactory对象实例化工厂详解的文章就介绍到这了,更多相关BeanFactory对象实例化工厂内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用feign传递参数类型为MultipartFile的问题
这篇文章主要介绍了使用feign传递参数类型为MultipartFile的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03使用Spring Cloud Stream处理事件的示例详解
Spring Cloud Stream 是基于 Spring Boot 的用于构建消息驱动微服务的框架,本文主要介绍了如何使用 Spring Cloud Stream 来处理事件,需要的可以参考一下2023-06-06
最新评论