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

本文探讨了在Spring5中如何控制对象的创建次数,包括简单和复杂对象的创建策略,如使用scope属性和factorybean。此外,解释了控制对象创建次数的重要性,以避免内存浪费。接着,介绍了对象的生命周期,包括创建、初始化和销毁三个阶段,并讨论了Spring如何管理这些阶段。文章还详细阐述了初始化和销毁方法的调用顺序以及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制对象创建次数

简单对象

配置文件中 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。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值