Spring的@Lazy懶加載注解用法詳細解析
更新時間:2023年11月24日 11:17:11 作者:IT技術分享社區(qū)
這篇文章主要介紹了Spring的@Lazy懶加載注解用法詳細解析,SpringIoC容器會在啟動的時候實例化所有單實例 bean ,如果我們想要實現 Spring 在啟動的時候延遲加載 bean,即在首次調用bean的時候再去執(zhí)行初始化,就可以使用 @Lazy 注解來解決這個問題,需要的朋友可以參考下
1、@Lazy 懶加載注解的概念
SpringIoC容器會在啟動的時候實例化所有單實例 bean 。如果我們想要實現 Spring 在啟動的時候延遲加載 bean,即在首次調用bean的時候再去執(zhí)行初始化,就可以使用 @Lazy 注解來解決這個問題。
注意:使用@Lazy的前提是要操作的Bean要使用默認的單例模式。
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 。默認為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 注解啟用的時候 不進行類初始化, // 不啟用的時候會進行類初始化 //控制臺輸出:測試容器添加Person對象...... AnnotationConfigApplicationContext annotationContext = new AnnotationConfigApplicationContext(TestLazyConfig.class); // 第一次獲取Bean對象 會進行類初始化 //控制臺輸出:測試容器添加Person對象...... Object person1 = annotationContext.getBean("person"); // 第二次獲取Bean對應 不會載進行類初始化 Object person2 = annotationContext.getBean("person"); } }
到此這篇關于Spring的@Lazy懶加載注解用法詳細解析的文章就介紹到這了,更多相關@Lazy懶加載注解用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot定時任務不執(zhí)行的幾個可能原因及解決方法
這篇文章主要介紹了SpringBoot定時任務不執(zhí)行的幾個可能原因及解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2023-12-12java如何自定義List中的sort()排序,用于日期排序
這篇文章主要介紹了java如何自定義List中的sort()排序,用于日期排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11