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

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

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

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

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

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

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

Spring 懶加載注意事項

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

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

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

方法2. 增加一個配置類 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;
/**
 * 懶加載加快啟動速度
 * @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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論