Spring的@Lazy懒加载注解用法详细解析
更新时间:2023年11月24日 11:17:11 作者:IT技术分享社区
这篇文章主要介绍了Spring的@Lazy懒加载注解用法详细解析,SpringIoC容器会在启动的时候实例化所有单实例 bean ,如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题,需要的朋友可以参考下
1、@Lazy 懒加载注解的概念
SpringIoC容器会在启动的时候实例化所有单实例 bean 。如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题。
注意:使用@Lazy的前提是要操作的Bean要使用默认的单例模式。
2、@Lazy 懒加载注解作用
使用@Lazy懒加载注解可以减少springIOC容器启动过程的加载时间。
3、@Lazy 懒加载注解使用示例
3.1 新建配置类TestLazyConfig.java
package com.spring.config; import com.spring.bean.Person; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; @Configuration //@Lazy注解作用于类上时,通常与@Component及其衍生Spring注解配合使用。 /*@Component @Lazy*/ public class TestLazyConfig { // @Lazy注解属性 Value 取值为 true、false 。默认为true 表示启用懒加载。 //false 表示不启用,基本用不到,如果不启用的话,不需要加@Lazy注解 // @Lazy注解作用于在类方法上时,通常与@Bean注解配合使用。 @Lazy @Bean public Person person() { System.out.println("测试容器添加Person对象......"); return new Person("小孙", 28, "西安"); } }
3.2 新建测试类 TestLazy.java
package com.spring.test; import com.spring.config.TestLazyConfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class TestLazy { public static void main(String[] args) { // @Lazy 注解启用的时候 不进行类初始化, // 不启用的时候会进行类初始化 //控制台输出:测试容器添加Person对象...... AnnotationConfigApplicationContext annotationContext = new AnnotationConfigApplicationContext(TestLazyConfig.class); // 第一次获取Bean对象 会进行类初始化 //控制台输出:测试容器添加Person对象...... Object person1 = annotationContext.getBean("person"); // 第二次获取Bean对应 不会载进行类初始化 Object person2 = annotationContext.getBean("person"); } }
到此这篇关于Spring的@Lazy懒加载注解用法详细解析的文章就介绍到这了,更多相关@Lazy懒加载注解用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringCloud微服务开发基于RocketMQ实现分布式事务管理详解
分布式事务是在微服务开发中经常会遇到的一个问题,之前的文章中我们已经实现了利用Seata来实现强一致性事务,其实还有一种广为人知的方案就是利用消息队列来实现分布式事务,保证数据的最终一致性,也就是我们常说的柔性事务2022-09-09jar的MANIFEST.MF配置Class-Path, java -classpath设置无效的解
这篇文章主要介绍了jar的MANIFEST.MF配置Class-Path, java -classpath设置无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07
最新评论