Spring源码学习--BeanFactory对象实例化工厂(一)
来源:互联网 发布:linux禁止ftp 编辑:程序博客网 时间:2024/04/28 07:09
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 = "&";//根据名称获取beanObject 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实例化操作。
阅读全文
0 0
- Spring源码学习--BeanFactory对象实例化工厂(一)
- Spring Framework源码(一):spring beans之BeanFactory
- spring的BeanFactory和ApplicationContext源码详解(一)
- spring的BeanFactory和ApplicationContext源码详解(一)
- spring的BeanFactory和ApplicationContext源码详解(一)
- Spring源码解析——start from BeanFactory(一)
- spring源码学习笔记-初始化(二)-BeanFactory
- spring源码学习笔记-初始化(三)-BeanFactory
- spring源码学习笔记-初始化(二)-BeanFactory
- spring源码学习笔记-初始化(三)-BeanFactory
- spring源码学习笔记-初始化(二)-BeanFactory
- spring源码学习笔记-初始化(三)-BeanFactory
- spring源码初步学习-容器(BeanFactory)基本实现
- Spring源码阅读之-BeanFactory(一)
- Spring IOC源码 个人初探(一) BeanFactory
- Spring源码分析IOC实现一BeanFactory
- Spring源码学习之BeanFactory接口简述
- Spring源码学习之BeanFactory和FactoryBean
- Struts2基础(2)
- TCP/IP Server同一个端口 怎么区分不同socket
- jzoj5163 【NOIP2017模拟6.25】PS的烦恼 [莫比乌斯反演]
- Java中clone方法的作用
- {模板}离散化
- Spring源码学习--BeanFactory对象实例化工厂(一)
- Struts2基础(3)
- Fragment添加和隐藏
- Android开发Kotlin配置
- 我的面视经历
- oracle mod函数
- 哪种Map集合遍历方式更加合适?——选择Map集合遍历方式
- ubuntu17.04网络连接问题
- Oracle RAC 登录archive error ora-00257错误处理方法