spring5学习笔记(五)spring对象创建与销毁

控制对象创建次数

简单对象

配置文件中 scope属性 单例(默认)只创建一次对象。 创建多个

复杂对象

factorybean方法创建 如果没有用factorybean还是实用scope属性

为什么要控制对象的创建次数?

根据对象自身的特点决定对象的创建情况。 好处:节省不必要的内存浪费。 什么样的对象只创建一次? sqlsessionFactory dao service 什么样的对象每一次都要创建新的? connection session

对象的生命周期

  1. 什么是对象的生命周期? 一个对象创建、存活、消亡的一个完整过程
  2. 为什么要学习对象的生命周期 因为由spring负责对象的创建、存活、销毁,了解生命周期,有利于使用好spring 框架
  3. 生命周期的3个阶段

创建阶段:

scope = singleton 工厂创建时对象创建(增加lazy init属性也可以变成获取时创建)
scope=prototype 工厂会再获取对象的同时创建对象(getbean)

初始化阶段

spring工厂创建对象后,会调用对象的初始化方法,完成对应的初始化操作。 1.初始化方法提供:程序员根据需求提供初始化方法 2.初始化方法调用:spring工厂进行调用 初始化方法1:类实现initializingBean接口,的afterpropertiesset方法。 初始化方法2:方法1虽然很好,但是耦合的spring框架。 对象提供一个普通的方法。所以spring怎么认识这个方法呢?当然是配置文件。 细节分析:

  1. 两个初始化操作执行顺序:先执行initializingBean,后执行自己的普通方法。
  2. 如果有注入需求,注入和初始化顺序:先注入,后初始化。所以名字叫做afterproperteset。
  3. 什么叫做初始化操作?对于资源的初始化:数据库资源、IO资源、网络资源

销毁阶段

spring销毁对象前,会调用对象的销毁方法,完成销毁操作,销毁操作就是对应初始化的资源的释放操作。

  1. 什么时候销毁创建对象? 工厂关闭的时候。
  2. 销毁方法:程序员定义,spring工厂调用。 销毁方法1:实现DisposableBean接口,的destory方法。 销毁方法2:自己定义一个方法,配置文件配置一下。 接口先调用,自己定义的后调用。

细节分析:

  1. 销毁方法的操作只适用于scope=singleton
  2. 什么叫做销毁操作?主要指的就是资源的释放操作,io 和连接的close。
经验分享 程序员 微信小程序 职场和发展