Spring BeanFactory 与 FactoryBean 的区别详情
2022-05-06 15:29:22 来源:易采站长站 作者:
目录
区别和联系BeanFactory
FactoryBean
总结
前言:
在 Spring 中, IOC 是很重要的概念,其本质就是 map 结构,存储容器和业务 Bean 信息。但是BeanFactory 和 FactoryBean 的区别却是一个很重要的知识点,在本文中将结合源码进行分析讲解。
区别和联系
BeanFactory
在 Spring 中,所有的 Bean 都是由 BeanFactory (也就是>
在英文中,Aware 是意识的意思,可以看到 BeanFactory 的生命周期流程包含了诸多的 Aware 接口:

以下为 BeanFactory 接口生命周期相关的一下方法,在项目开发中,ApplicationContextAware、InitializingBean 和 DisposableBean 有这广泛的应用。
BeanNameAware.setBeanName 用于设置 Bean 的名称BeanClassLoaderAware.setBeanClassLoader 设置类加载器
BeanFactoryAware.setBeanFactory 设置 bean 工厂
ResourceLoaderAware.setResourceLoader 设置资源加载器
ApplicationEventPublisherAware.setApplicationEventPublisher 设置事件发布器
MessageSourceAware.setMessageSource 设置信息资源
ApplicationContextAware.setApplicationConhttps://www.easck.com/text 设置应用上下文
ServletContextAware.setServletContext 设置 Servlet 上下文
BeanPostProcessor.postProcessBeforeInitialization 前置处理器
Initwww.easck.comializingBean.afterPropertiesSet Bean 初始化操作
RootBeanDefinition.getInitMethodName 设置Bean 的初始化方法名称
BeanPostProcessor.postProcessAfterInitialization 后置处理器
DisposableBean.destroy 设置 Bean 销毁
RootBeanDefinition.getDestroyMethodName 获取 Bean 销毁的方法
默认情况下,如果直接调用 getBean 方法,将会返回一个工厂创造的对象,如果想获取 Bean 本身,那么需要添加 & 符号作为前缀进行处理。

FactoryBean
但是在某些具体的情况下,实例化 Bean 的操作会很复杂,按照其要求需要配置大量的属性,此时 Bean 的配置灵活性就受到了限制,此时就需要使用到 www.easck.comFactoryBean 了,该接口可以按照用户的需求来构造 Bean 对象,而不再遵守 Bean 生命周期的流程。Spring 自身就提供了很多 FactoryBean 的实现,>

总结
BeanFactory 提供一个>
到此这篇关于Spring BeanFactory 与 FactoryBean 的区别详情的文章就介绍到这了,更多相关Spring BeanFactory 与 FactoryBean 内容请搜索我们以前的文Xpqgi章或继续浏览下面的相关文章希望大家以后多多支持我们!













闽公网安备 35020302000061号