最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring全局懶加載的優(yōu)劣及使用方法詳解

 更新時(shí)間:2023年10月12日 10:07:36   作者:項(xiàng)哥  
這篇文章主要介紹了Spring全局懶加載的優(yōu)劣及使用方法詳解,Spring 懶加載是一種延遲加載的機(jī)制,它允許在需要時(shí)才創(chuàng)建和初始化對(duì)象,而不是在應(yīng)用程序啟動(dòng)時(shí)就立即加載所有對(duì)象,通過(guò)懶加載,可以提高應(yīng)用程序的性能和資源利用率,需要的朋友可以參考下

開啟 Spring 全局 bean 懶加載的好處

  • 可以加快啟動(dòng)速度,當(dāng)服務(wù)依賴很多的時(shí)候,增速非常明顯。
  • 服務(wù)啟動(dòng)時(shí)不用考慮依賴,不需要滿足所有的依賴就可以啟動(dòng)服務(wù)
  • 建議 在 test, qa, dev 等環(huán)境酌情開啟,在自己本機(jī)調(diào)試測(cè)試時(shí)可以只測(cè)試部分功能,只需要保證需要測(cè)試的功能依賴滿足即可
  • 生產(chǎn)環(huán)境一般不建議開啟
  • 本機(jī)單元測(cè)試的時(shí)候使用全局懶加載和 @mock 結(jié)合

開啟 Spring 全局 bean 懶加載的壞處

  • 屏蔽了啟動(dòng)時(shí)對(duì) bean 的依賴檢查,當(dāng) bean 不滿足生成條件的時(shí)候需要等待實(shí)際調(diào)用才會(huì)暴露出來(lái)
  • bean 在第一次使用的時(shí)候才初始化,影響第一次訪問(wèn)的速度

Spring 懶加載注意事項(xiàng)

  • 當(dāng)開啟全局懶加載以后,某個(gè) bean 不希望懶加載時(shí)可以加上 @Lazy(false) 注解
  • quarz 定時(shí)任務(wù)不能延遲加載,如果延遲加載的話就可能導(dǎo)致定時(shí)任務(wù)失效
  • sdk 靜態(tài)方法調(diào)用會(huì)因?yàn)閼屑虞d導(dǎo)致依賴的 bean 無(wú)法加載。例如
@Component
public class Client {
   private static ServiceA service;
   public class Client(ServiceA service) {
      Client.service = service
   }
   // 當(dāng)調(diào)用 Client.hello()方法時(shí)會(huì)報(bào)錯(cuò)
   public static String hello() {
      return service.hello();
   }
}

開啟 Spring 全局 bean 懶加載的方式

方法1.Spring boot 2.2 版本以上,可以設(shè)置 spring.main.lazy-initialization=true

方法2. 增加一個(gè)配置類 LazyInitBeanFactoryPostProcessor

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
/**
 * 懶加載加快啟動(dòng)速度
 * @author liufang
 */
@Profile(value = {"qa", "dev"})
@Configuration
public class LazyInitBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        for (String beanName : beanFactory.getBeanDefinitionNames()) {
            beanFactory.getBeanDefinition(beanName).setLazyInit(true);
        }
    }
}

到此這篇關(guān)于Spring全局懶加載的優(yōu)劣及使用方法詳解的文章就介紹到這了,更多相關(guān)Spring全局懶加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中channel用法總結(jié)

    Java中channel用法總結(jié)

    這篇文章主要介紹了Java中channel用法,較為詳細(xì)的總結(jié)了channel的定義、類型及使用技巧,需要的朋友可以參考下
    2015-06-06
  • 一種類似JAVA線程池的C++線程池實(shí)現(xiàn)方法

    一種類似JAVA線程池的C++線程池實(shí)現(xiàn)方法

    線程池(thread pool)是一種線程使用模式。線程過(guò)多或者頻繁創(chuàng)建和銷毀線程會(huì)帶來(lái)調(diào)度開銷,進(jìn)而影響緩存局部性和整體性能。這篇文章主要介紹了一種類似JAVA線程池的C++線程池實(shí)現(xiàn)方法,需要的朋友可以參考下
    2019-07-07
  • 深入解析Java中的InterruptedException從異常處理到最佳實(shí)踐方案

    深入解析Java中的InterruptedException從異常處理到最佳實(shí)踐方案

    在Java多線程編程中,InterruptedException 是一個(gè)常見但又容易被忽視的異常,本文將通過(guò)一個(gè)實(shí)際的日志案例,分析 InterruptedException 的產(chǎn)生原因、影響,并提供合理的解決方案和最佳實(shí)踐,感興趣的朋友一起看看吧
    2025-06-06
  • MyBatis的<foreach>以及java代碼的批處理方式

    MyBatis的<foreach>以及java代碼的批處理方式

    這篇文章主要介紹了MyBatis的<foreach>以及java代碼的批處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解spring多線程與定時(shí)任務(wù)

    詳解spring多線程與定時(shí)任務(wù)

    本篇文章主要介紹了spring多線程與定時(shí)任務(wù),詳細(xì)的介紹了spring多線程任務(wù)和spring定時(shí)任務(wù),有興趣的可以了解一下。
    2017-04-04
  • java中synchronized鎖的升級(jí)過(guò)程

    java中synchronized鎖的升級(jí)過(guò)程

    這篇文章主要介紹了java中synchronized鎖的升級(jí)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Nexus存儲(chǔ)庫(kù)管理器搭建-Maven私服詳解

    Nexus存儲(chǔ)庫(kù)管理器搭建-Maven私服詳解

    這篇文章主要介紹了Nexus存儲(chǔ)庫(kù)管理器搭建-Maven私服,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Java?Optional的判空操作詳解

    Java?Optional的判空操作詳解

    JAVA在1.8版本推出Optional,官方文檔將其描述為可能包含或不包含非空值的容器對(duì)象,目前Optional用于避免程序出現(xiàn)異常NullPointerException,感興趣的可以了解一下
    2022-09-09
  • SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明

    SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明

    Spring Boot的GlobalExceptionHandler是一個(gè)全局異常處理器,用于捕獲和處理應(yīng)用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關(guān)于Java中GlobalExceptionHandler異常處理機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Java 提取照片的EXIF信息批量重命名

    Java 提取照片的EXIF信息批量重命名

    這篇文章主要介紹了Java 提取照片的EXIF信息批量重命名的方法,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論

阿勒泰市| 溧水县| 闸北区| 保山市| 平度市| 邛崃市| 长武县| 新干县| 含山县| 偃师市| 泸水县| 永靖县| 太仆寺旗| 多伦县| 淮安市| 安徽省| 辰溪县| 齐河县| 嵩明县| 内乡县| 偃师市| 达州市| 驻马店市| 仁布县| 赤壁市| 乐山市| 阜宁县| 隆化县| 琼结县| 虎林市| 永寿县| 象山县| 弥勒县| 丰镇市| 东兰县| 湄潭县| 乌审旗| 无棣县| 徐汇区| 淅川县| 南充市|