博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring系列之-Spring bean的生命周期
阅读量:6480 次
发布时间:2019-06-23

本文共 960 字,大约阅读时间需要 3 分钟。

hot3.png

我们传统的Bean对象中,使用该对象是会通过New关键字产生,一旦不再使用了后Bean对象就会被JVM自动回收。但是Spring bean的生命周期就比较复杂,熟练掌握Spring bean的生命周期有利于扩展自己的业务逻辑。下面是摘自与Spring Action中的一张Spring bean生命周期图:

203616_SXXJ_2371422.png

入上述图可以看出,Spring bean从初始化到最终销毁会经历很多个步骤:

1.spring对bean进行初始化。

2.bean的属性和参数进行注入。

3.如果bean实现了BeanNameAware接口,将会调用该接口的setBaenName()方法。

4.如果该bean实现了BeanFactoryAware接口,将会调用该接口的setBaenFactory()方法。

5.如果该bean实现了ApplicationContextAware接口,将会调用该bean的setApplictionContext()方法。

6.如果bean实现了BeanPostProcessor接口,将会调用postProcessBeforeInitialization()方法进行预初始化。

7.如果bean实现了InitializingBean接口,name接口中的afterPropertiesSet()将会被调用。

8.调用初始化init-mentod方法。

9.如果bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization()方法。

此时Spring bean创建完成了,可以直接使用Spring bean了,Spring bean会常驻与Spring上下文中,知道Spring 上下文被销毁后Spring bean才会被销毁,默认Spring bean是单例,所以上述初始化方法仅会调用一次,反之则不是,如果商户方法中有任何一个方法失败Spring bean创建将会失败。

10.如果Spring bean实现了DisposableBean接口,Spring销毁时将会调用destroy()方法,同理如果自定义了init-destroy()也会执行。

转载于:https://my.oschina.net/wenbo123/blog/1587322

你可能感兴趣的文章
前端图片预览方式
查看>>
云帮社区版4月升级,支持主流Go版本,修复了若干Bug
查看>>
React还是Vue?
查看>>
Java基础知识整理之操作Redis(二)
查看>>
交错正负数
查看>>
浅析-js的alert()与console.log()区别
查看>>
Vue 项目中使用 webpack 将多个组件合并打包并实现按需加载
查看>>
[问题解析] 记一次__do_global_ctors_aux导致的coredump
查看>>
中台之上(十四):尝试构建轻量级架构设计工具
查看>>
苹果Q1财报出炉:手机收入下滑15%,服务收入增长19%
查看>>
一文看懂.NET的各种变体
查看>>
HAProxy 1.9发布,支持端到端 HTTP/2,改进缓冲区和连接管理
查看>>
与专门团队一起持续交付
查看>>
C# 8的新提案:new关键字类型推断
查看>>
通过Jinq简化数据库查询
查看>>
Windows 10 超过Windows 7成为最受欢迎的操作系统
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
已经到来的革命
查看>>
机器人操作系统来到Windows
查看>>
绩效考核如何跟工资、等级挂钩?
查看>>