使用Spring初始化加載InitializingBean()方法
Spring初始化加載InitializingBean()
1、spring初始化bean有兩種方式
1)實現(xiàn)InitializingBean接口,繼而實現(xiàn)afterPropertiesSet的方法 ;
2)利用類反射原理,配置加載文件,使用init-method標(biāo)簽直接注入bean。
2、相同點
實現(xiàn)注入bean的初始化。
3、不同點
實現(xiàn)的方式不一致。
接口比配置效率高,但是配置消除了對spring的依賴。而實現(xiàn)InitializingBean接口依然采用對spring的依賴。
4、InitializingBean接口定義的源碼如下所示
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // ? package org.springframework.beans.factory;? public interface InitializingBean { ? ? void afterPropertiesSet() throws Exception; }
該方法在實現(xiàn)之后,會在程序加載完成之后執(zhí)行。
5、由于代碼在項目啟動的時候會執(zhí)行afterPropertiesSet()方法
如果方法中包含修改字段的信息,那么多次啟動就會造成多次修改字段的內(nèi)容。該方法常用的場景是數(shù)據(jù)庫鏈接中使用。如果多次鏈接會造成一定的資源浪費。
除了修改字段類型外當(dāng)然也可以做別的事,如:檢查某表是否存在 存在的話里面的某值是否存在 不存在則添加。
6、這個方法將在所有的屬性被初始化后調(diào)用
但是會在init前調(diào)用。如果代碼是延遲加載,則馬上執(zhí)行。所以可以在類上加上@Lazy(false)注解,其中添加的內(nèi)容如下:
? ? import org.springframework.context.annotation.Lazy; ? ? @Lazy(false)
這樣spring容器初始化的時候afterPropertiesSet就會被調(diào)用,只需要實現(xiàn)InitializingBean接口就行。
關(guān)于InitializingBean簡單使用
InitializingBean接口為bean提供了初始化執(zhí)行的方法,即afterPropertiesSet方法,凡是繼承該接口的類,在初始化bean的時候會執(zhí)行該方法。
下面簡單示例:
這是一個Spring組件Filer
實現(xiàn)了afterPropertiesSet方法
在這個方法中使用了一個被Autowired注入的Spring Bean:
debug啟動項目
可以正常使用被注入的組件!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實現(xiàn)HTTP服務(wù)監(jiān)聽的代碼示例
前后端分離項目中,在調(diào)用接口調(diào)試時候,我們可以通過cpolar內(nèi)網(wǎng)穿透將本地服務(wù)端接口模擬公共網(wǎng)絡(luò)環(huán)境遠(yuǎn)程調(diào)用調(diào)試,本次教程我們以Java服務(wù)端接口為例,需要的朋友可以參考下2023-05-05springboot內(nèi)置的tomcat支持最大的并發(fā)量問題
這篇文章主要介紹了springboot內(nèi)置的tomcat支持最大的并發(fā)量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03springboot 傳參校驗@Valid及對其的異常捕獲方式
這篇文章主要介紹了springboot 傳參校驗@Valid及對其的異常捕獲方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10一文帶你了解微服務(wù)架構(gòu)中的"發(fā)件箱模式"
微服務(wù)架構(gòu)如今非常的流行,這個架構(gòu)下可能經(jīng)常會遇到“雙寫”的場景。本文就和大家分享一個“發(fā)件箱模式”,?感興趣的小伙伴可以了解一下2023-01-01詳談Java編程之委托代理回調(diào)、內(nèi)部類以及匿名內(nèi)部類回調(diào)(閉包回調(diào))
下面小編就為大家?guī)硪黄斦凧ava編程之委托代理回調(diào)、內(nèi)部類以及匿名內(nèi)部類回調(diào)(閉包回調(diào))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05解決nacos修改配置信息后需要重啟服務(wù)才能生效的問題
當(dāng)配置信息發(fā)生變動時,傳統(tǒng)修改配置信息后,需要重新重啟服務(wù)器才可以生效,大量應(yīng)用配置修改時,需要一個個修改配置,無法統(tǒng)一修改,且沒有辦法回溯配置版本,所以本文給大家介紹了如何解決這些問題的方法,需要的朋友可以參考下2023-10-10