第十章 对象的生命周期

1.什么是生命周期

对象创建 存活 销毁的完整的过程

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

在以前通过new创建对象,调用对象,则该对象存活,直到被JVM的垃圾回收机制回收
现在由Spring负责对象的创建 存活 销毁,了解生命周期,有助于使用好Spring为我们创建的对象

3.生命周期的三个阶段

  • 创建阶段
  • scope=”singleton”
Spring创建工厂的同时,创建对象
注意 : 设置scope="singleton"的同时,想要在获取对象的同时,创建对象
      在bean标签中添加属性
  • scope=”prototype”
Spring工厂在获取对象的同时,创建对象
  • 初始化阶段
Spring工厂在创建完对象后,调用对象的初始化方法,完成初始化操作
1. 初始化方法提供:程序员根据需求,提供初始化方法,完成初始化操作
2. 初始化方法调用:Spring工厂进行调用
  • 实现InitializingBean接口
//将初始化需求写在方法里面,完成初始化操作
public void afterPropertiesSet(){}
  • 在对象中提供一个普通的初始化方法
//名字随便起
public void myInit(){}
//配置文件中进行配置

  • 细节分析
    1. 如果一个对象既实现了InitializingBean接口, 又提供了普通的初始化方法时,怎么调用?谁先调用?
都会起作用
先调用接口方法
再调用普通的初始化方法
2. 如果对象中存在成员变量, 需要进行注入, 先注入还是先初始化?
注入一定会发生在初始化之前
3. 什么是初始化
资源的初始化 : 数据库 IO 网络...

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

1. Spring什么时候销毁所创建的对象
    context.close();
2. 销毁方法 : 程序员根据需求,定义销毁方法,完成销毁操作
      调用 : Spring工厂完成调用
  • 实现DisposableBean接口
//将销毁需求写在该方法中,完成销毁操作
public void destroy(){}
  • 在对象中提供一个普通的销毁方法
//在对象中定义方法,命名无要求
public void myDestroy(){}
//配置文件中进行配置

  • 细节分析
    1. 销毁操作只适用于scope=”singleton”时
    2. 什么是销毁
主要是资源的释放
  • 总结

第十章 对象的生命周期

Original: https://www.cnblogs.com/suwuji/p/16498593.html
Author: 苏无及
Title: 第十章 对象的生命周期

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612606/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaWeb核心篇(3)——JSP,MVC,三层架构

    JavaWeb核心篇(3)——JSP,MVC,三层架构 在本篇文章中我们会学习到JSP,MVC,三层架构 虽然JSP已经快被时代所淘汰,但是在一些老旧的工作场所还是有在使用,所以了…

    数据库 2023年6月14日
    072
  • Redis 哈希Hash底层数据结构

    Redis 底层数据结构 Redis数据库就像是一个哈希表,首先对key进行哈希运算得到哈希值再取模得到一个下标,每个元素是一个节点,节点之间形成链表。这感觉有点像Java中的Ha…

    数据库 2023年6月14日
    0102
  • MySQL 基础

    MySQL 基础 SQL 介绍 SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据…

    数据库 2023年5月24日
    093
  • 常用API(Java)

    Object 场景:当我们使用toString方法想要输出对象变量时,官方提供的toString方法会直接输出对象所在的地址,而不是我们想要的对象变量,所以我们要把toString…

    数据库 2023年6月16日
    093
  • Java源码详解系列(十二)–Eureka的使用和源码

    eureka 是由 Netflix 团队开发的针对中间层服务的负载均衡器,在微服务项目中被广泛使用。相比 SLB、ALB 等负载均衡器,eureka 的服务注册是无状态的,扩展起来…

    数据库 2023年6月6日
    069
  • 局域网内访问子网服务(访问电脑虚拟机中的服务)

    局域网内访问子网服务 问题描述: 同一个路由器(172.18.0.0)下面有两台电脑A(172.18.40.45)和B (172.18.44.173) ,在B电脑上安装虚拟机 ,使…

    数据库 2023年6月9日
    099
  • 你的 SQL 还在回表查询吗?快给它安排覆盖索引

    什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键、聚集索引、辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引…

    数据库 2023年5月24日
    090
  • google浏览器个人常用快捷键

    分享一下个人常用快捷键。 说明:字母排序规则遵循字母表(a->z) 快捷键 介绍 ctrl+0 恢复页面到100% ctrl+数字(1~9) 切换至序号对应的标签页 ctrl…

    数据库 2023年6月14日
    084
  • Windows 是最安全的操作系统

    建了一个用户交流群,我在群里说:”Windows 是最安全的操作系统。” 立刻引发了很多有意思的观点。我在群里一个人说不过大家,先篇文章把自己的论点罗列一下…

    数据库 2023年6月6日
    0255
  • 运行的第一个Django

    2022-09-24 创建了一个Django项目后,进行测试,输入指令: python manage.py runserver 出现了如下问题: 我还想着,Django模块通过安装…

    数据库 2023年6月14日
    082
  • 2022-8-11 网络编程(网络通信)

    网络协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这…

    数据库 2023年6月14日
    0109
  • 跑步与读书

    本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16746334.html Or…

    数据库 2023年6月11日
    0103
  • Mysql自序整理集

    mysql事务是用于处理操作量大、复杂性高的数据 原子性:确保每个事务都有已完成或未完成的操作,不能卡在中间;如果事务在执行过程中出现错误,将回滚到事务开始之前的状态。 [En] …

    数据库 2023年5月24日
    094
  • MySQL视图

    视图 常见的数据库对象 视图概述 为什么使用视图 可以帮助我们使用表中的 部分数据,对其修改可以改变原来表中的值 可以简化查询 控制数据的访问(权限) 视图的理解 视图是一个本身没…

    数据库 2023年5月24日
    076
  • Tomcat端口占用

    进入命令行命令:netstat -ano作用:查看所有端口占用 命令:netstat -aon|findstr 端口号port作用:查看端口号port占用情况 命令:taskkil…

    数据库 2023年6月11日
    067
  • java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端

    新增功能:培训学习模块, PDF电子课程、视频课程、直播课程(自己搭建直播流服务器) 人脸识别(考试时验证,有开关)、补考开关 组建试卷:创建试卷,题目、类型、总分、及格分数、时长…

    数据库 2023年6月6日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球