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