本文共 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/