SpringBoot懒加载

什么是懒加载

懒加载是一种优化技术,它延迟加载或按需加载资源,以减少初始加载时间或提高性能。在不同的上下文中,懒加载有不同的应用和含义。在web开发中,懒加载通常指的是延迟加载图片数据。在长网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。通过使用图片的懒加载,可以解决这个问题。在滚动屏幕之前,可视化区域之外的图片不会进行加载,而是在滚动屏幕时才加载。这样可以使网页的加载速度更快,减少服务器的负载。

总之,它的作用就是服务需要用到什么的时候才会加载什么,而不是启动的时候就全部加载,懒加载是一种优化技术,旨在提高应用程序的性能和响应速度。它通过延迟加载或按需加载资源来实现这一目标。

SpringBoot应用懒加载

在SpringBoot中配置懒加载还是很简单的,这个问题,SpringBoot已经支持了,只需要使用@Lazy注解来实现

@Lazy注解

在Spring Boot中,你可以使用@Lazy注解来实现懒加载。@Lazy注解用于延迟加载依赖,以便在真正需要的时候才进行初始化。这可以避免在应用程序启动时立即加载所有依赖,从而提高应用程序的启动性能。

要使用@Lazy注解,你需要将其添加到需要懒加载的Bean上。例如,假设你有一个名为"myBean"的Bean,你可以在它的定义上添加@Lazy注解,如下所示:

@Component  
@Lazy  
public class MyBean {  
    // Bean的代码  
}

例如:现在有TestBeanA和TestBeanB两个类,A类没有添加懒加载,B类添加了这样就是使B类在启动时不被加载

 

 如果启动时调用一下B类,则会进行加载

注意事项

  1. 懒加载的Bean必须被其他Bean引用,否则它不会被初始化。因此,如果你没有在其他地方引用"myBean",那么它永远不会被初始化。
  2. 懒加载的Bean必须是单例Bean。因为懒加载是为了提高应用程序的性能,所以它只会在第一次需要时初始化一次。因此,懒加载的Bean必须是单例Bean,以便在整个应用程序中共享实例。
  3. 懒加载的Bean不能被标记为@Scope("prototype"),因为prototype作用域的Bean会在每次注入时都创建新的实例。这会导致懒加载无法正常工作。
  4. 懒加载的Bean中的依赖注入也必须是懒加载的。如果一个Bean中的依赖不是懒加载的,那么整个Bean都会被立即初始化,而不是延迟初始化。

总结 

懒加载也并不是这一个注解就能囊括的,这是中技术思路.

个人认为懒加载这项技术在开发阶段,尤其是单体项目还是非常有必要的,至于生产,则要按需配置了,并不是所有的Bean都要使用时初始化才好

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,懒加载是一种机制,可以在需要使用时才加载bean,以减少启动时间。要开启懒加载功能,可以通过在配置文件(如application.properties或application.yaml)中设置spring.main.lazy-initialization=true来实现。这样,只有在第一次使用时才会加载bean。同时,可以在需要懒加载的bean上添加@Lazy注解,表示该bean是懒加载的。需要注意的是,懒加载可能会带来一些问题,所以需要进行适当的权衡和测试。另外,还可以通过编码的方式设置全局懒加载,即通过设置SpringApplication的lazyInitialization属性来控制懒加载的行为。例如,使用SpringApplication的setLazyInitialization(false)方法可以禁用全局懒加载。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [懒加载SpringBoot](https://blog.csdn.net/weixin_54931655/article/details/131597703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Springboot之Bean懒加载的实现详解](https://blog.csdn.net/A_art_xiang/article/details/127868331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值