当前位置: 首页 > news >正文

Spring中的对象创建与生命周期管理

控制Spring工厂创建对象的次数

1.如何控制简单对象的创建次数

<bean id="account" scope="singleton|prototype" class="xxx.xxx.xxx"/>

singleton:只会创建一次简单对象 默认值

prototype:每一次创建都会创建新的对象

2.如何控制复杂对象的创建次数

Factory{

        isSingleton(){

                return true;//只会创建一次

                return false;//每一次都会创建新的

}

如果没有isSingleton方法,还是通过scope属性 进行对象创建次数的控制

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

好处:节省不必要的内存浪费

  • 什么样的对象只创建一次?

1.SqlSessionFactory

2.DAO

3.Service

  • 什么样的对象创建多次?

Connection

SqlSeesion|Session

对象的生命周期

1.什么是对象生命周期

指的是一个对象创建、存活、消亡的一个过程

2.为什么要学习对象的生命周期 

由Spring负责对象的创建、存活、销毁,了解生命周期,更加有利于使用好Spring框架

3.生命周期三个阶段

  • 创建阶段

Spring工厂何时创建对象

  •  scope="singleton"(也在获取时创建  lazy-init="true")//懒加载

Spring工厂创建的同时,对象的创建

  • scope="prototype"

Spring工厂会在获取对象的同时,创建对象

ctx.getBean("")

  • 初始化阶段 

Spring工厂在创建完对象后,调用对象的初始化方法,完成对应的初始化操作

1.初始化操作:程序员根据需求,提供初始化方法,最终完成初始化操作

2.初始化方法调用:Spring工厂进行调用

  • initalizingBean接口

//程序员根据需求,实现的方法,完成初始化操作

public void afterPropertitiesSet() 完成初始化

  • 对象种提供一个普通的方法 

public void myInit(){

        

<bean id="product" class="xxx.",init-method="myInit">

  • 细节分析:

1.如果一个对象既实现InitializingBean同时又提供普通的初始化方法 顺序

1.InitializingBean

2.普通初始化方法

2.注入一定发生在初始化操作的前面 

3.什么叫初始化操作

资源的初始化:数据库、IO、网络.....

  •  销毁阶段

Spring销毁对象前,会调用对象的销毁方法,完成销毁操作

1.Spring什么时候销毁所创建的对象呢?

ctx.close();//工厂关闭的时候

2.销毁方法:程序员根据自己的需求,定义销毁方法,完成销毁方法操作

        调用:Spring工厂发发调用

  •  DisposableBean
  • 自定义普通销毁方式

细节分析

1.销毁方法的操作只适用于scope="singleton"

2.什么叫销毁操作:

主要指的就是:资源的释放操作 

总结

相关文章:

  • Gateway:网关路由与登录鉴权
  • 手机端安装包签名原理
  • 下载文件,文件名乱码问题
  • sql server 2016 版本补丁说明
  • 在unsloth框架下的基于医疗deepseek模型微调
  • 257. 二叉树的所有路径(递归+回溯)
  • 树莓派 调用摄像头
  • clickhouse集群部署保姆级教程
  • C++相关数据结构的API调用
  • qemu-kvm源码解析-内存虚拟化
  • CUDA error code 201:invalid device context
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(32)万剑归宗破妖阵 - 最长递增子序列(LIS)
  • 有哪些好用的AI视频加工创作网站
  • SpringBoot整合JPA
  • 使用 ConfigMaps 可以优化 Spring Boot应用
  • 08 | 实现版本号打印功能
  • 线索二叉树构造及遍历算法
  • Day 14: 从上到下打印二叉树
  • Android启动速度优化
  • STM32单片机FreeRTOS系统11 系统时钟节拍和时间管理,定时器组
  • 共情场域与可持续发展——关于博物馆、美术馆运营的新思考
  • 外媒:初步结果显示,菲律宾前总统杜特尔特当选达沃市市长
  • 山东鄄城发生一起交通事故,造成4人死亡、2人受伤
  • 第二期人工智能能力建设研讨班在京开班,近40国和区域组织代表参加
  • 秦洪看盘|预期改善,或迎来新的增量资金
  • “行人相撞案”现场视频公布,法院:表述不当造成误导