博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring bean的生命周期总结
阅读量:2065 次
发布时间:2019-04-29

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

项目路径: 下的spring-09

bean的行为模式分两种:
单例模式:由ioc容器负责,只创建一次,可以设置延迟加载,默认就是单例模式
非单例模式:spring ioc容器不负责此种模式的生命周期,只负责创建初始化,每次使用时都会创建新的

xml方式加载

bean生命周期最简单的一种情况:
实例化——》设置属性——》使用
复杂的情况(实际可能只会用到其中的几步):
1.实例化
2.设置属性
3.如果实现了BeanNameAware接口(bean名字关注接口),则可以获取正在实例化的bean的名字(bean id)
4.如果实现了BeanFactoryAware接口(bean 工厂关注接口),则可以获取bean工厂
5.如果实现了ApplicationContextAware接口,可以获取上下文对象
6.如果bean和后置处理器关联,则会自动调用postProcessBeforeInitialization和postProcessAfterInitialization的方法
7.如果实现了InitializingBean接口,则会调用afterPropertiesSet方法
8.如果在配置文件中定义了自己的初始化方法,则会执行该方法
9.如果实现了DisposableBean接口,则关闭容器时会自动调用接口的destroy方法
10.如果在配置文件中定义了自己的销毁方法,则关闭容器时会调用该方法
流程的执行结果

以上是通过ApplicationContext方式获取到的bean的生命周期

而通过BeanFactory获取到的bean对象,bean的声明周期相对会少一些

打印结果

少了ApplicationContext里面的第5和第6步,所以两者是不一样的。

bean的生命周期开始的时间:被载入容器中的时候,第一个过程就是实例化
bean一般在什么时候实例化:程序加载配置文件的时候,把bean加载到内存中,可以证明bean在这个时候实例化的,默认会调用无参的构造函数

 

 

 

 

 

 

转载地址:http://kswmf.baihongyu.com/

你可能感兴趣的文章
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>
Git安装配置
查看>>
linux中fork()函数详解
查看>>
C语言字符、字符串操作偏僻函数总结
查看>>
Git的Patch功能
查看>>
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>