SpringBoot懒加载简介说明
下文笔者讲述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); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。