Spring的@Lazy懶加載注解用法詳細(xì)解析
1、@Lazy 懶加載注解的概念
SpringIoC容器會在啟動的時候?qū)嵗袉螌嵗?bean 。如果我們想要實現(xiàn) Spring 在啟動的時候延遲加載 bean,即在首次調(diào)用bean的時候再去執(zhí)行初始化,就可以使用 @Lazy 注解來解決這個問題。
注意:使用@Lazy的前提是要操作的Bean要使用默認(rèn)的單例模式。
2、@Lazy 懶加載注解作用
使用@Lazy懶加載注解可以減少springIOC容器啟動過程的加載時間。
3、@Lazy 懶加載注解使用示例
3.1 新建配置類TestLazyConfig.java
package com.spring.config;
import com.spring.bean.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Configuration
//@Lazy注解作用于類上時,通常與@Component及其衍生Spring注解配合使用。
/*@Component
@Lazy*/
public class TestLazyConfig {
// @Lazy注解屬性 Value 取值為 true、false 。默認(rèn)為true 表示啟用懶加載。
//false 表示不啟用,基本用不到,如果不啟用的話,不需要加@Lazy注解
// @Lazy注解作用于在類方法上時,通常與@Bean注解配合使用。
@Lazy
@Bean
public Person person() {
System.out.println("測試容器添加Person對象......");
return new Person("小孫", 28, "西安");
}
}3.2 新建測試類 TestLazy.java
package com.spring.test;
import com.spring.config.TestLazyConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestLazy {
public static void main(String[] args) {
// @Lazy 注解啟用的時候 不進(jìn)行類初始化,
// 不啟用的時候會進(jìn)行類初始化
//控制臺輸出:測試容器添加Person對象......
AnnotationConfigApplicationContext annotationContext = new AnnotationConfigApplicationContext(TestLazyConfig.class);
// 第一次獲取Bean對象 會進(jìn)行類初始化
//控制臺輸出:測試容器添加Person對象......
Object person1 = annotationContext.getBean("person");
// 第二次獲取Bean對應(yīng) 不會載進(jìn)行類初始化
Object person2 = annotationContext.getBean("person");
}
}到此這篇關(guān)于Spring的@Lazy懶加載注解用法詳細(xì)解析的文章就介紹到這了,更多相關(guān)@Lazy懶加載注解用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java BeanMap實現(xiàn)Bean與Map的相互轉(zhuǎn)換
這篇文章主要介紹了利用BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換,通過net.sf.cglib.beans.BeanMap類中的方法來轉(zhuǎn)換,效率極高,本文給大家分享實現(xiàn)代碼,感興趣的朋友一起看看吧2022-11-11
SpringBoot定時任務(wù)不執(zhí)行的幾個可能原因及解決方法
這篇文章主要介紹了SpringBoot定時任務(wù)不執(zhí)行的幾個可能原因及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12
java如何自定義List中的sort()排序,用于日期排序
這篇文章主要介紹了java如何自定義List中的sort()排序,用于日期排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
springboot高并發(fā)下提高吞吐量的實現(xiàn)
這篇文章主要介紹了springboot高并發(fā)下提高吞吐量的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
一篇文章帶你了解一些Java反射的學(xué)習(xí)記錄
java反射機(jī)制是一個很好用的東西,用它可以解決很多死的東西,因為反射機(jī)制的靈活行很大,有了他,我們就不要花太多的時間來寫操做數(shù)據(jù)庫的代碼了,這個可以很大的減少開發(fā)時間,而且代碼的可讀性好2021-09-09

