死記硬背spring bean 的生命周期

1.bean的生命周期

我們平常經常使用類似于new Object()的方式去創建對象,在這個對象沒有任何引用的時候,會被gc給回收掉。而對于spring而言,它本身存在一個Ioc容器,就是用來管理對象的,而對象的生命周期也完全由這個容器所控制。Spring 中每個 Bean 的生命周期如下:

2.主要步驟簡述

  • 實例化 Bean:通過反射調用構造方法實例化對象。
  • 依賴注入:裝配 Bean 的屬性。
  • 實現了 Aware接口的 Bean,執行接口方法(如創建bean的名稱等等):如順序執行 BeanNameAware、BeanFactoryAware、ApplicationContextAware的接口方法。
  • Bean 對象初始化前,循環調用實現了 BeanPostProcessor 接口的預初始化方法(postProcessBeforeInitialization)。
  • Bean 對象初始化:順序執行 @PostConstruct 注解方法、InitializingBean 接口方法、init-method 方法。
  • Bean 對象初始化后,循環調用實現了 BeanPostProcessor 接口的后初始化方法(postProcessAfterInitialization)。
  • 容器關閉時,執行 Bean 對象的銷毀方法,順序是:@PreDestroy 注解方法、DisposableBean 接口方法、destroy-method。

3.一句話概述

spring bean的生命周期主要會經過3個關鍵步驟,即實例化對象、給對象進行屬性注入、對象初始化,只不過在進行對象初始化之前或之后有可能會進行一些自定義的處理,比如對象實現了BeanNameWare接口,可以用來設置bean對象的名稱,也比如對象實現了
BeanPostProcessor接口,就可以增加一些自定義的邏輯在該接口的兩個方法中。當然對象初始化完成后,最后還可以增加對象的銷毀方法,讓對象在銷毀時進行一些自定義的操作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711336.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring之AOP入門

1.AOP介紹 AOP(Aspect Oriented Programming)面向切面編程,一種編程范式,指導開發者如何組織程序結構,作用是在不改動原始設計的基礎上為其進行功能增強 2.AOP的核心概念 概念定義SpringAOP(注解開發&am…

性能測試-反編譯jar

方法一,使用jd-gui 1、官網下載:Java Decompiler 2、下載mac版本后,解壓,如下所示: 雙擊 JD_GUI,提示錯誤,如下所示: 已經安裝了java 17,是java 1.8以上版本&#xff0…

Unity中URP下實現水體(水面高光)

文章目錄 前言一、實現高光反射原理1、原理:2、公式: 二、實現1、定義 _SpecularColor 作為高光反射的顏色2、定義 _SpecularIntensity 作為反射系數,控制高光反射的強度3、定義 _Smoothness 作為高光指數,用于模型高光范圍4、模擬…

ADO.NET+kafka實現發布訂閱保存到數據庫

??????ADO.NETkafka實現發布訂閱保存到數據庫 在.NET應用程序中,ADO.NET通常用于數據庫操作,而Apache Kafka是一個分布式流處理平臺,它允許發布(Producer)和訂閱(Consumer)消息流。使用A…

深入理解c指針(四)

目錄 六、assert斷言 七、指針的使用和傳址調用 1、strlen的模擬實現 2、傳值調用和傳址調用 3、練習-字符串逆序 在深入理解c指針&#xff08;三&#xff09;提到&#xff0c;在實際使用指針前可以檢測其是否指到有效空間&#xff1a; #include<stdio.h> int mai…

度量與評估客戶體驗:以客戶為中心的方法和工具

在當今的市場環境中&#xff0c;客戶體驗已經成為企業成功的關鍵因素。一個優秀的客戶體驗不僅能夠提升客戶滿意度&#xff0c;增強客戶忠誠度&#xff0c;還能夠吸引新的潛在客戶。然而&#xff0c;要實現這一目標&#xff0c;企業首先需要了解如何度量和評估客戶體驗。本文將…

day08_分類品牌管理商品規格管理商品管理

文章目錄 1 分類品牌管理1.1 菜單添加1.2 表結構介紹1.3 頁面制作1.4 品牌列表加載1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端對接brand.jscategoryBrand.vue 1.5 分類數據加載1.6 列表查詢1.6.1 需求說明1.6.2 后端接口需求分析Categor…

linux nasm匯編中調用printf不報錯,但調用scanf報錯。拋出了分段錯誤(核心轉儲)

當我寫了如下匯編時 ; nasm -f elf64 -g -F dwarf charsin.asm ; gcc charsin.o -no-pie -o charsin ; ld -o eatclib eatclib.o ; gdb eatclib[SECTION .data]SPrompt db Enter string data, followed by Enter: ,0IPrompt db Enter an integer value, followed by Enter: ,1…

Python進階教學一

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、函數1.高階函數2.返回函數3.匿名函數4.裝飾器 二、實例1.類和實例2.限制訪問3. 繼承和多態4.實例屬性和類屬性 一、函數 1.高階函數 1.1 map1.2 reduce1.3 fi…

Dsco Dropship EDI需求分析

供應商要想從Dsco處通過EDI獲取訂單&#xff0c;需要部署自己的EDI系統&#xff0c;與Dsco的EDI供應商CommerceHub 建立連接&#xff0c;分為兩個方向&#xff1a; 1.從CommerceHub 的 Dsco 平臺獲取 EDI 850 采購訂單 2.向Dsco發送庫存&#xff08;846&#xff09;、訂單狀態…

MySQL的內外連接

1.內連接 內連接實際上就是利用 WHERE 子句&#xff08;連接條件&#xff09;對兩張表形成的笛卡爾積&#xff08;內連接&#xff09;進行篩選&#xff0c;我們之前學習的查詢基本都是內連接&#xff0c;也是在實際生產中被使用得最多的連接查詢。 另外內連接還可以使用下面的…

Java Swing游戲開發學習7

內容來自RyiSnow視頻講解 這一節實現的是背景音樂和音效的播放。 在這里&#xff0c;背景音樂和音效所用的音頻文件均為wav格式文件。Java SDK默認支持的格式有限&#xff0c;默認不支持mp3格式音樂。 背景音樂、拾取鑰匙、拾取靴子、開門分別有對應的音頻文件。 作者的實現…

2024-02學習筆記

1.當我們向Set集合中添加一個已經存在的元素時 當我們向Set集合中添加一個已經存在的元素時&#xff0c;Set集合會如何處理呢&#xff1f;實際上&#xff0c;Set集合不會將重復的元素添加到集合中。當我們向Set集合中添加一個元素時&#xff0c;Set集合會首先判斷該元素是否已…

Ubuntu-22.04安裝MegaCLI并查看MegaRAID的配置

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、MegaRAID二、安裝MegaCLI1.Ubuntu-18.042.Ubuntu-22.043.Ubuntu-20.044.CentOS-75.其它發行版 三、使用MegaCLI1.查看所有適配器信息2.查看所有物理磁盤信息…

華為配置WLAN高密業務示例

配置WLAN高密業務示例 組網圖形 圖1 配置高密WLAN環境網絡部署組網圖 業務需求組網需求數據規劃配置思路配置注意事項操作步驟配置文件 業務需求 體育場由于需要接入用戶數量很大&#xff0c;AP間部署距離較小&#xff0c;因此AP間的干擾較大&#xff0c;可能導致用戶上網網…

新王炸:文生視頻Sora模型發布,能否引爆AI芯片熱潮

前言 前方高能預警&#xff0c;Sora來襲&#xff01; 淺析Sora的技術亮點 語言模型中構建關鍵詞聯系 視頻素材分解為時空碎片 擴散模型DiT Not for play, But change world! OpenAI的宏大目標 未來已來&#xff0c;只是尚未流行 Sora的成本與OpenAI的7萬億美金豪賭 算…

【探索AI】人人都在講AIGC,什么是AIGC?

AIGC 概述示例展示我們日常用到的一些工具/應用核心技術介紹核心技術的算法解析案例及部分代碼實現1. 藝術作品2. 設計項目3. 影視特效4. 廣告創意總結 一張圖先了解下&#xff1a; 概述 "人工智能生成創造&#xff08;Artificial Intelligence Generated Content&#x…

從CPU緩存結構到原子操作

一、CPU緩存結構 1.1 CPU的多級緩存 因為CPU的計算速度非常快&#xff0c;但內存的訪問速度相對較慢。因此&#xff0c;如果CPU每次都要從內存讀取數據&#xff0c;會造成大量的等待時間&#xff0c;降低整體性能。 通過引入多級緩存&#xff0c;可以在CPU和內存之間建立數據…

vue3中實現elementPlus表格選中行的上移下移

先看效果&#xff1a; 實現步驟&#xff1a; 1、給el-table添加current-change事件、高亮屬性及ref屬性 2、給上移下移按鈕添加事件 // 定義當前選中的行參數 const currentRow ref<any>(null); // 定義表格的ref const singleTableRef ref(); // 行選中事件 const ha…

正信晟錦:借了錢的人一直不接電話不回信息咋辦

在金錢往來中&#xff0c;遇到借出的錢款無法按時回收&#xff0c;且借款人如同人間蒸發一般不接電話、不回信息&#xff0c;確實讓人焦慮。面對這種情形&#xff0c;我們需采取明智而有效的措施&#xff0c;以保護自身的權益。 首要策略是保持冷靜&#xff0c;不要讓情緒主導行…