配置在Spring中的Bean在Spring容器中从加载到销毁会经历那些过程呢?如果实现一些特定的Spring接口,这些特定接口的方法会在什么时候被调用呢?本文简单介绍一下这些过程.

Bean在Spring容器中的生命周期如下图所示:

1,调用Bean的构造函数(或者工厂方法)实例化Bean.
2,对Bean的成员变量赋值.
3,如果Bean实现了BeanNameAware,调用Bean的setBeanName方法.
4,如果Bean实现了BeanFactoryAware,调用Bean的setBeanFactory方法.
5,如果Bean实现了ApplicationContextAware,调用Bean的setApplicationContext方法.
6,如果容器中配置了BeanPostProcessor,调用BeanPostProcessor的postProcessBeforeInitialization方法(如果有多个BeanPostProcessor,调用每一个BeanPostProcessor的postProcessBeforeInitialization方法).
6,如果Bean实现了InitializingBean,调用Bean的afterPropertiesSet方法.
7,如果Bean配置了init-method方法,调用init-method配置的Bean方法.
8,如果容器中配置了BeanPostProcessor,调用BeanPostProcessor的postProcessAfterInitialization方法.(如果有多个BeanPostProcessor,调用每一个BeanPostProcessor的postProcessAfterInitialization方法).
9,Bean处于可以使用的状态.
10,Spring容器关闭.
11,4,如果Bean实现了DisposableBean,调用Bean的destroy方法.
12,如果Bean配置了destroy-method方法,调用destroy-method配置的Bean的方法.

  SpringMVC的生命周期,即SpringMVC的执行流程:

第一步:发起请求到前端控制器(DispatcherServlet)
    第二步:前端控制器请求HandlerMapping(处理器映射器)查找 Handler
        可以根据xml配置、注解进行查找
    第三步:处理器映射器HandlerMapping向前端控制器返回Handler
    第四步:前端控制器调用处理器适配器去执行Handler
    第五步:处理器适配器去执行Handler
    第六步:Handler执行完成给适配器返回ModelAndView
    第七步:处理器适配器向前端控制器返回ModelAndView
        ModelAndView是springmvc框架的一个底层对象,包括 Model和view
    第八步:前端控制器请求视图解析器去进行视图解析
        根据逻辑视图名解析成真正的视图(jsp)
    第九步:视图解析器向前端控制器返回View
    第十步:前端控制器进行视图渲染
        视图渲染将模型数据(在ModelAndView对象中)填充到request域
    第十一步:前端控制器向用户响应结果

最新文章

  1. redis-删除所有key
  2. Logger的等级输出
  3. 常用的HTML5、CSS3新特性能力检测写法
  4. Java 自动装箱与拆箱(Autoboxing and unboxing)
  5. 2016---ios面试题
  6. centos6.5 安装cmake 3.3.2
  7. 在CentOS6.5下安装Memcached
  8. 经历:Java中字符串中按照多个字符拆分或替换:split()和replaceAll()
  9. HDOJ(HDU) 2201 熊猫阿波的故事(概率问题)
  10. SQL Server事务的存储过程
  11. hdu 1757 A Simple Math Problem(矩阵快速幂乘法)
  12. 用python -i写交互式shell
  13. 终于会用c#中的delegate(委托)和event(事件)了
  14. windows2003 IIS6 部署MVC3和MVC4程序
  15. js小知识点
  16. 20175324王陈峤宇 《Java程序设计》第六周学习总结
  17. Appium+Python3+iOS真机环境搭建
  18. android shape 怎么在底部画横线
  19. 步步为营-89-SQL语句(删除重复数据)
  20. 安卓程序代写 网上程序代写[原]Android中的回调Callback

热门文章

  1. C#开发BIMFACE系列11 服务端API之源文件删除
  2. Springboot学习与mybatis逆向生成工具
  3. ScrollView中页面显示自动滑到最后问题的解决
  4. HTML(五)列表,区块,布局,表单和输入
  5. 【selenium】- selenium简介
  6. lightoj 1382 - The Queue(树形dp)
  7. 疯狂的bLue
  8. SpringCloud学习笔记(1):Eureka注册中心
  9. 【LeetCode】116#填充同一层的兄弟节点
  10. 计时器Chronometer