spring in action

1.容器发现bean的定义,初始化bean

2.使用依赖注入的方式,spring根据bean定义,设置bean的所有属性

3.如果bean继承了BeanNameAware接口,则工厂调用setBeanName方法,把bean的Id传值过去

4.如果bean继承了BeanFactoryAware接口,则工厂调用setBeanFactroy()方法,把本身的一个实例传值过去。

5.如果bean关联了一些BeanPostProcessor,则调用这些BeanPostProcessor的postProcessBeforeInitialization()方法。

6.如果bean的init-method方法被设置,则调用bean的初始化方法

7.最后,如果bean关联了一些BeanPostProcessor,则调用这些BeanPostProcessor的postProcessAfterInitialization()方法。

补充:applicationContext中bean的生命周期

spring揭秘上的bean初始化和销毁过程

Bean 实例创建时序图(http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html)

Bean 对象关系建立

转载于:https://www.cnblogs.com/davidwang456/archive/2013/03/13/2957133.html

spring启动过程之源码跟踪(小结bean的生命周期)--spring Debug相关推荐

  1. spring启动过程之源码跟踪(下)--spring Debug

    在web应用启动入口是ContextLoaderListener,它是怎么完成启动过程的呢? 首先: public class ContextLoaderListenerextends Object ...

  2. spring启动过程之源码跟踪(中)--spring Debug

    上节我们debug到 1 // Tell the subclass to refresh the internal bean factory. 2 ConfigurableListableBeanFa ...

  3. spring启动过程之源码跟踪(续beanfactory)--spring Debug

    1.初始化过程 1 Resource res = new ClassPathResource("/applicationContext.xml"); 2 XmlBeanFactor ...

  4. spring启动过程之源码跟踪(上)--spring Debug

    1,初始化容器 1 ClassPathXmlApplicationContext context=new 2 ClassPathXmlApplicationContext("/applica ...

  5. 【Spring源码】讲讲Bean的生命周期

    1.前言 面试官:"看过Spring源码吧,简单说说Spring中Bean的生命周期" 大神仙:"基本生命周期会经历实例化 -> 属性赋值 -> 初始化 -& ...

  6. Spring源码分析系列-Bean的生命周期(总结篇)

    ApplicationContext和BeanFactory   BeanFactory是Spring中的顶层接口,只负责管理bean,而ApplicationContext也实现了BeanFacto ...

  7. 小米面试官:说说Spring源码里面的Bean的生命周期!

    1. Bean的实例化概述 前一篇分析了BeanDefinition的封装过程,最终将beanName与BeanDefinition以一对一映射关系放到beanDefinitionMap容器中,这一篇 ...

  8. spring session spring:session:sessions:expires 源码跟踪

    2019独角兽企业重金招聘Python工程师标准>>> spring session spring:session:sessions:expires 源码跟踪 博客分类: sprin ...

  9. spring 启动之全过程 源码解析

    主类代码 public class BeanLifeCycle {public static void main(String[] args) {System.out.println("现在 ...

最新文章

  1. 【NIO】通道Channel
  2. 【连载】优秀程序员的45个习惯之39——架构师必须写代码
  3. 打印下标iOS 6-字面量
  4. java io 输出流_Java IO 输入和输出流
  5. 突破Outlook2003附件格式限制
  6. 健康检测文件httpchk.jsp
  7. 将JQGrid与Spring MVC和Gson集成
  8. java原生的ajax怎么写_原生Ajax代码实现
  9. MetaMask发布自定义网络API,允许开发人员为其用户提供多链服务
  10. 字符串startswith_Python字符串startswith()
  11. 善待自己:改变命运的N个人生哲理
  12. web3(httpd2.4)
  13. SAP FICO 财务成本知识库
  14. 调用钉钉API发送消息通知给个人或部门 ,钉钉后台
  15. 命令 / Linux / apt remove 和 apt purge 的区别
  16. iOS、mac开源项目及库(转载)
  17. 如何快速实现在网页中调用文档扫描仪 (1)
  18. 167. 两数之和 II - 输入有序数组633. 平方数之和
  19. 米的换算单位和公式_一米等于多少分米(常见的长度单位换算公式方法)
  20. android原生农场壁纸,Android 6.0高清壁纸下载-Android 6.0原生壁纸高清免费打包下载-东坡下载...

热门文章

  1. Qt中的基础图形绘制
  2. java程序员闯关题网站_Java程序员每周必逛的十大学习网站
  3. java servletconfig_ServletConfig中的方法
  4. c++ vector iterator
  5. tf.squeeze
  6. numpy a[...,:2]
  7. 中国楼市场的真相————写在厦门楼市崩盘之后
  8. TensorFlow 莫烦 手写识别 cross_entry (五)
  9. 列出5个python标准库_Python常用标准库使用(一)
  10. 《程序员代码面试指南第二版》Python实现(个人读书笔记)