JavaEE8-Bean的生命周期

news2025/1/17 0:13:12

目录

1.Bean执行原理分析

2.Bean生命周期

2.1.实例化Bean:为Bean分配内存空间。(相当于买房,从无到有)

2.2.设置属性:Bean注入和装配。(执行依赖类的注入:A需要使用B的方法,先初始化并将B加载到当前类A)(相当于装修)

2.3.Bean初始化:(相当于买家电)

2.3.1.实现了各种Aware通知的方法。如:BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法。

2.3.2.执行BeanPostProcessor初始化前置方法。(相当于选家具的品牌)

2.3.3.初始化方法(相当于购买家电)

2.3.4.执行BeanPostProcessor初始化后置方法。(相当于装家电)

2.4.使用Bean(入住新房)

2.5.销毁Bean(卖出去房子)

2.5.1.注解方式@PreDestroy。

2.5.2.destroy-method(xml)。

 PS:实例化和初始化的区别

3.生命周期演示


1.Bean执行原理分析

Spring执行流程:启动Spring容器 -> 实例化Bean(分配内存空间,从无到有)-> Bean注册到Spring中(存操作) -> 将Bean装配到需要的类中(取操作)。

2.Bean生命周期

(属于Spring执行流程中的一部分,是初始化并且装配容器的一个过程。)

Bean的生命周期是指一个对象从诞生到销毁的整个生命过程,分为以下5大部分:

2.1.实例化Bean:为Bean分配内存空间。(相当于买房,从无到有)

2.2.设置属性:Bean注入和装配。(执行依赖类的注入:A需要使用B的方法,先初始化并将B加载到当前类A)(相当于装修)

2.3.Bean初始化:(相当于买家电)

2.3.1.实现了各种Aware通知的方法。如:BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法。

2.3.2.执行BeanPostProcessor初始化前置方法。(相当于选家具的品牌)

2.3.3.初始化方法(相当于购买家电)

  • (后期)执行注解@PostConstruct初始化方法,依赖注入操作之后被执行。(相当于购买家具)
  • (早期)执行自己指定的init-method方法(如果有指定的话)xml中用init-method方法。XML<bean init-method = "xxx">

二者效果一样,可并存(优先执行注解,再执行XML中的方法)

2.3.4.执行BeanPostProcessor初始化后置方法。(相当于装家电)

2.4.使用Bean(入住新房)

2.5.销毁Bean(卖出去房子)

销毁容器的各种方法,如@PreDestroy,@DisposableBean接口方法,destroy-method。

两种实现:

2.5.1.注解方式@PreDestroy。

2.5.2.destroy-method(xml<bean destroy-method = "xxx">)。

Bean的执行流程:

 PS:实例化和初始化的区别

实例化和属性设置是Java级别的系统“事件”,其操作过程不可人工干预和修改;

而初始化是给开发者提供的,可以在实例化之后,类加载完成之前,进行自定义“事件”处理。

3.生命周期演示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win32com操作word API精讲 第六集 Range(四)对齐和缩进

本课程《win32com操作word API精讲&项目实战》同步在B站、今日头条、视频号及本公众号发布。其中本平台以发布文字教程为主&#xff0c;所有平台ID均为&#xff1a;一灯编程 今天是大年初二&#xff0c;一灯在此祝愿各位朋友兔年吉祥&#xff0c;达成所想。 本节课主要讲解…

机器学习(六):模型评估

文章目录 模型评估 一、分类模型评估 二、 回归模型评估 三、拟合 1、欠拟合 2、过拟合 模型评估 模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。 按照数据集的目标值不同&#xff0c;可以把模型评估分为分类…

Python信用卡欺诈检测 [TensorFlow]

Python信用卡欺诈检测 [TensorFlow] 提示&#xff1a;前言 Python 信用卡欺诈检测 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python信用卡欺诈检测 [TensorFlow]前言一、导入包二、加载数据三、加载数据四、 …

WebAssembly编译之(1)-asm.js及WebAssembly原理介绍

WebAssembly介绍及产生历程 1、什么是WebAssembly、为什么WASM&#xff1f; 我们知道Web的应用几乎涵盖了大半个互联网应用&#xff1b;越多越多的Web应用层出不穷&#xff0c;而然Web最致命的劣势就是其在浏览其的运行效率特忙&#xff0c;尤其是web游戏的体验不佳。 而Web…

ubuntu安装Espeak实现tts文字转语音

目录参考一、介绍二、安装安装包安装查看安装版本和espeak-data路径直接尝试安装中文包三、生产wav文件四、代码引入参考 ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for ‘zh’ 一、介绍 **用途&#xff1a;**可识别多语言的朗读软件 …

JavaEE day4 初识CSS

HTML如果说是前端网页中的骨架 那么CSS就是用来对骨架进行排版美化的、 CSS全称为 Cascading Style Sheets 层叠样式表 预备知识&#xff1a; html中的所有元素都有两个通用的属性&#xff1a;id和class id&#xff1a;唯一标识符&#xff0c;一个html组成元素中&#xff…

Day07 C++STL入门基础知识四——vector容器(上) 基本概念-构造函数-赋值操作-容量大小【全面深度剖析+例题代码展示】

Leave no stone unturned. 竭尽全力 文章目录1. 基本概念1.1 功能1.2 与普通数组相同点与不同点1.3 动态扩展2. 构造函数2.1 功能描述2.2 函数原型2.3 代码展示3. 赋值操作3.1 函数原型3.2 代码展示4. 容量及大小4.1 函数原型4.2 代码展示4.2.1 empty()4.2.1.1 代码展示4.2.1.2…

恶意代码分析实战 1 静态分析基础技术

1.1 Lab 1-1 对Lab01-01.exe和Lab01-01.dll进行分析 问题 将文件上传至http://www.VirusTotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗? 首先查看Lab-01-01.exe。 然后查看Lab01-01.dll。 这两个文件应该都是恶意文件。 这些文件是什么时候编译的?…

20230125英语学习

Office Buzzwords You’re Using That Annoy All Your Co-workers 说话之道&#xff1a;避开办公室行话的“雷区” Joining a new office means having to learn how to communicate with your team.But in order to do that well, it sometimes means having to learn your …

索引优化示例

目录 1.单表优化 2.两表优化 3.三表优化 4.总结 1.单表优化 创建索引前 (1)先按照where条件创建索引 按照查询条件中的三个项目创建索引&#xff0c;并且索引中的项目存在顺序&#xff0c;分别是1,2和3。 (2)创建索引 type 变成了 range,这是可以忍受的。但是 extra 里使用…

恶意代码分析实战 4 识别汇编中的C代码结构

4.1 Lab06-01.exe 由main函数调用的唯一子过程中发现的主要代码结构是什么&#xff1f; 使用Strings进行查看&#xff0c;需要注意最后的这两个字符串&#xff0c;一个是“没有网”&#xff0c;另一个是“联网成功”。 IDA 中查看图结构。 明显是if-else结构。 位于0x4010…

进程间通信/管道/消息队列/共享内存/信号量

本文重点目标&#xff1a; ⭐进程间通信介绍⭐ ⭐管道⭐ ⭐消息队列⭐ ⭐共享内存⭐ ⭐信号量⭐ 1.进程间通信介绍 什么是通信&#xff1f; 通信指的是数据传输、资源共享、通知事件和进程控制。 ①数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 ②资源共享&a…

【GIS】高分辨率遥感影像智能解译

1 绪论 随着航空科技工业的不断成熟与发展&#xff0c;我国遥感卫星研制能力不断攀升&#xff0c;发射数量逐年提高&#xff0c;在轨运行的遥感卫星为社会生产及居民日常生活提供了巨大的支持与便利。我国目前同时在轨运行的遥感卫星数量已超过60颗&#xff0c;每天获取并传回…

LeetCode[990]等式方程式的可满足性

难度&#xff1a;中等题目&#xff1a;给定一个由表示变量之间关系的字符串方程组成的数组&#xff0c;每个字符串方程 equations[i]的长度为 4&#xff0c;并采用两种不同的形式之一&#xff1a;"ab"或 "a!b"。在这里&#xff0c;a 和 b 是小写字母&#…

【Python学习003】高效数据结构-列表

【Python学习003】高效数据结构-列表 我们的公众号是【朝阳三只大明白】&#xff0c;满满全是干货&#xff0c;分享近期的学习知识以及个人总结&#xff08;包括读研和IT&#xff09;&#xff0c;希望大家一起努力&#xff0c;一起加油&#xff01;求关注&#xff01;&#xf…

浏览器使用本地硬盘上的JS文档

网页通过<script>标记可以引入在线的js文档&#xff0c;只有把网页保存在本地硬盘才能使用相对路径引入本地js文档&#xff0c;普通浏览器难以实现在线页面上引入本地js文档。怎么解决这个问题呢&#xff1f;首先准备好需要引入的JS文档&#xff0c;可以是成熟的JS库&…

【docker概念和实践 4】(3)本地镜像提交到阿里云

一、说明 本篇讲述如何将自己制作的容器转化成镜像&#xff0c;再将镜像推送到远端阿里云上。 二、制造一个本地容器 2.1 从远端仓库拉取ubuntu镜像 使用镜像拉取语句&#xff1a; docker pull ubuntu:20.04 docker run -it ubuntu&#xff1a;20.04 bash 通过以上两句&…

LeetCode[200]岛屿数量

难度&#xff1a;中等题目&#xff1a;给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外&am…

5-4中央处理器-控制器的功能和工作原理

文章目录一.控制器的结构和功能二.硬布线控制器1.硬布线控制单元图2.微操作命令分析3.CPU的控制方式&#xff08;1&#xff09;同步控制方式&#xff08;2&#xff09;异步控制方式&#xff08;3&#xff09;联合控制方式4.硬布线控制单元的设计步骤&#xff08;1&#xff09;分…

qsort函数用法 + 模拟实现qsort函数

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;【C/C】算法 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞…