什么是懒加载
懒加载是一种优化技术,它延迟加载或按需加载资源,以减少初始加载时间或提高性能。在不同的上下文中,懒加载有不同的应用和含义。在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类,则会进行加载
注意事项
- 懒加载的Bean必须被其他Bean引用,否则它不会被初始化。因此,如果你没有在其他地方引用"myBean",那么它永远不会被初始化。
- 懒加载的Bean必须是单例Bean。因为懒加载是为了提高应用程序的性能,所以它只会在第一次需要时初始化一次。因此,懒加载的Bean必须是单例Bean,以便在整个应用程序中共享实例。
- 懒加载的Bean不能被标记为@Scope("prototype"),因为prototype作用域的Bean会在每次注入时都创建新的实例。这会导致懒加载无法正常工作。
- 懒加载的Bean中的依赖注入也必须是懒加载的。如果一个Bean中的依赖不是懒加载的,那么整个Bean都会被立即初始化,而不是延迟初始化。
总结
懒加载也并不是这一个注解就能囊括的,这是中技术思路.
个人认为懒加载这项技术在开发阶段,尤其是单体项目还是非常有必要的,至于生产,则要按需配置了,并不是所有的Bean都要使用时初始化才好