欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Spring初始化加載InitializingBean()方法

 更新時間:2022年01月28日 14:56:46   作者:振哥在,世界充滿愛!  
這篇文章主要介紹了使用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)文章

最新評論