SpringBoot懒加载简介说明

欣喜 SpringBoot 发布时间:2025-02-24 11:03:27 阅读数:8940 1
下文笔者讲述SpringBoot懒加载简介说明,如下所示

SpringBoot懒加载简介

在Spring Boot中
  懒加载(Lazy Loading)是一种优化技术
   用于延迟Bean的初始化
    直到它们第一次被请求时才进行实例化
	 这可以提高应用程序的启动性能

懒加载优点

1.提高启动性能:
   通过延迟Bean的初始化,
     可以减少启动时的内存消耗和初始化时间
2.减少资源占用:
   只有在实际需要时才创建Bean,
     减少了不必要的资源占用
3.更好的模块化:
   懒加载有助于更好地组织和管理应用程序的不同模块,
    避免不必要的依赖

启用懒加载的方式

Spring Boot提供多种方式来启用懒加载
  包括全局配置和单个Bean的配置。

方式1:
  全局配置
  可在`application.properties`或`application.yml`文件
    中启用全局懒加载

application.properties:
 spring.main.lazy-initialization=true

application.yml:
	spring:
	  main:
		lazy-initialization: true

============================================================ 
单个Bean配置
  可在单个Bean上
    使用@Lazy注解来启用懒加载
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;

@Component
@Lazy
public class MyLazyBean {
    public MyLazyBean() {
        System.out.println("MyLazyBean initialized");
    }

    public void doSomething() {
        System.out.println("Doing something in MyLazyBean");
    }
}

懒加载的使用场景

1.大型应用程序:
  在大型项目中,
    许多Bean可能在启动时并不需要立即使用,懒加载可以显著提高启动性能。
2.模块化设计:
    在模块化设计中,
	  懒加载可以帮助更好地组织和管理不同的模块,避免不必要的依赖。
3.资源密集型Bean:
    对于资源密集型的Bean,懒加载可以减少启动时的资源占用。

懒加载注意事项
1.循环依赖:
   懒加载可能会导致循环依赖问题
     因为Bean的初始化被延迟
	 可能会在运行时才发现依赖问题。
2.性能影响:
   虽然懒加载可以提高启动性能
     在某些情况下
	  频繁的延迟初始化可能会对运行时性能产生影响。

application.properties:
spring.main.lazy-initialization=true


MyLazyBean.java: 
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;

@Component
@Lazy
public class MyLazyBean {
    public MyLazyBean() {
        System.out.println("MyLazyBean initialized");
    }

    public void doSomething() {
        System.out.println("Doing something in MyLazyBean");
    }
}

 MyController.java 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @Autowired
    private MyLazyBean myLazyBean;

    @GetMapping("/lazy")
    public String lazyLoad() {
        myLazyBean.doSomething();
        return "Lazy loading example";
    }
}
 
 启动类 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class LazyLoadingApplication {
    public static void main(String[] args) {
        SpringApplication.run(LazyLoadingApplication.class, args);
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202502/8324.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者