文章来自于:http://jijun87120681.iteye.com/blog/1397377
Spring的IOC容器就是一个实现了BeanFactory接口的可实例化类。
BeanFactory从名字上都可以看出,采用了工厂模式。应用程序将Bean的创建交给Beanfactory,然后从BeanFactory获取Bean并使用它们,流程图如下:
Bean初始化流程:
(1)容器根据XML配置文件中Bean的定义实例化一个Bean,并传入必要的构造方法参数。
(2)容器根据XML配置文件使用设置Bean的属性
(3)如果Bean实现了BeanNameAware接口,调用其setBeanName()方法
(4)如果Bean实现了BeanClassLoaderAware接口,调用其setBeanClassLoader()方法
(5)如果Bean实现了BeanFactoryAware接口,调用其setBeanFactory()方法
(6)如果使用ApplicationContext并且Bean实现了ResourceLoaderAware接口,调用其setResourceLoader()方法
(7)如果使用ApplicationContext并且Bean实现了ApplicationEventPublisherAware接口,调用其setApplicationEventPublisher()方法
(8)如果使用ApplicationContext并且Bean实现了MessageSourceAware接口,调用其setMessageSource()方法
(9)如果使用ApplicationContext并且Bean实现了ApplicationContextAware接口,调用其setApplicationContext()方法
(10)如果使用WebApplicationContext并且Bean实现了ServletContextAware接口,调用其setServletContext()方法,仅对Web应用程序有效
(11)如果关联了BeanPostProcessor,调用BeanPostProcessor的postProcessBeforeInitialization()方法
(12)如果实现了InitializingBean接口,调用其afterPropertiesSet()方法执行一些初始化工作
(13)如果Bean定义了init-method方法,调用这个方法执行一些初始化工作
(14)如果关联了BeanPostProcessor,调用BeanPostProcessor的postProcessAfterInitialization()方法
执行完上述步骤,Bean就处于就绪状态,可以从spring容器中获取了
Bean的销毁流程:
(1)如果Bean实现了DisposableBean接口,调用其destroy()方法执行资源清理等工作
(2)如果Bean定义了destroy-method方法,调用这个方法执行资源清理等工作
Bean的流程可以从BeanFactory源代码注释中完全看出来:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
public
interface
BeanFactory {...}
分享到:
相关推荐
主要介绍了简单了解Spring中BeanFactory与FactoryBean的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring核心学习IOC部分:从最简单的BeanFactory开始一步步完善类似Spring的功能
主要介绍了简单了解Spring beanfactory循环依赖命名重复2大属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
BeanFactory是用于访问Spring Bean容器的根接口,是一个单纯的Bean工厂,也就是常说的IOC容器的顶层定义,各种IOC容器是在其基础上为了满
主要介绍了Spring BeanFactory和FactoryBean区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要给大家介绍了关于Spring中BeanFactory与FactoryBean接口的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Spring学习,简单理解,帮助大家学习。 Spring由Rod Johnson创建的,开源的轻量级Java开发框架。 于2003年兴起,2016年最高版本是4.3. 有两个目标:让现有的技术更易于使用 促进良好的编程习惯 由7个模块...
一共近百道题与完整答案Spring框架的优点都有什么?...spring 中的BeanFactory与ApplicationContext的作用和区别?Spring如何实现资源管理?如何在web应用里面配置spring?。。。。。。 适合面试、学习、总结与复习.
学习spring,要有一定的Java基础,同时应用过spring基于xml的配置。(或者学习过官网的Spring课程) 学习springmvc,要有一定java web开发基础。同时对spring框架要有一定了解。 3、课程亮点 系统的学习Spring框架...
Spring 容器:介绍了 Spring 容器的不同类型,包括 BeanFactory 和 ApplicationContext,以及它们在管理对象生命周期和依赖注入方面的作用。 依赖注入:详细解释了依赖注入的原理和用法,以及如何配置和管理 Bean ...
在认真学习Rod.Johnson的三部曲之一:<<Professional Java Development with the spring framework>>,顺便也看了看源代码想知道 个究竟,抛砖引玉,有兴趣的同志一起讨论研究吧! 以下内容引自博客:...
在认真学习Rod.Johnson的三部曲之一:<<Professional Java Development with the spring framework>>,顺便也看了看源代码想知道 个究竟,抛砖引玉,有兴趣的同志一起讨论研究吧! 以下内容引自博客:...
4.1 学习Spring的DAO理念 4.1.1 理解Spring的DataAccessException 4.1.2 与DataSource一起工作 4.1.3 一致的DAO支持 4.2 在Spring中使用JDBC 4.2.1 JDBC代码的问题 4.2.2 使用...
然后发现了多年前的一个精简版的Spring学习项目,叫,作者对spring核心的IOC和AOP进行了临摹实现,也很细心的对实现步骤进行了拆分。我看完了tiny-spring收获许多,自己也参考该项目进行了模仿与实践,从我学习的...
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
在学习了书籍Spring5.0后,将自己的理解总结成了ppt,主要包含了IoC 和 DI,AOP,BeanFactory和FactoryBean,事务管理四个方面
在前面两篇文章中,我们已经对ApplicationContext的大部分内容做了介绍,包括国际化,Spring中的运行环境,Spring中的资源,Spring中的事件监听机制,还剩唯一一个BeanFactory相关的内容没有介绍,这篇文章我们就来...
1. public interface BeanFactory { 2. 3. //这里是对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象, 4. //如果需要得到工厂本身,需要转义 5. String FACTORY...
java查看sun包源码 Spring 学习笔记 IOC 和 DI 的概述 IOC(Inversion of Controll) 思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找...BeanFactory是Spring框架的基础设施,面向Spring本身 A