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懒加载注解用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • list的4种遍历方式(实例讲解)

    list的4种遍历方式(实例讲解)

    下面小编就为大家带来一篇list的4种遍历方式(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • java实现捕鱼达人游戏

    java实现捕鱼达人游戏

    这篇文章主要介绍了java实现捕鱼达人游戏,大部分功能都已实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • mybatis注入Date日期值为null的解决方法

    mybatis注入Date日期值为null的解决方法

    这篇文章主要给大家介绍了关于mybatis注入Date日期值为null的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java BeanMap实现Bean与Map的相互转换

    Java BeanMap实现Bean与Map的相互转换

    这篇文章主要介绍了利用BeanMap进行对象与Map的相互转换,通过net.sf.cglib.beans.BeanMap类中的方法来转换,效率极高,本文给大家分享实现代码,感兴趣的朋友一起看看吧
    2022-11-11
  • SpringBoot定时任务不执行的几个可能原因及解决方法

    SpringBoot定时任务不执行的几个可能原因及解决方法

    这篇文章主要介绍了SpringBoot定时任务不执行的几个可能原因及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • java如何自定义List中的sort()排序,用于日期排序

    java如何自定义List中的sort()排序,用于日期排序

    这篇文章主要介绍了java如何自定义List中的sort()排序,用于日期排序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • springboot高并发下提高吞吐量的实现

    springboot高并发下提高吞吐量的实现

    这篇文章主要介绍了springboot高并发下提高吞吐量的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java判断字符串中是否包含中文方法

    Java判断字符串中是否包含中文方法

    这篇文章主要介绍了Java判断字符串中是否包含中文方法,使用Matcher类解决了这个问题,需要的朋友可以参考下
    2014-06-06
  • 一篇文章带你了解一些Java反射的学习记录

    一篇文章带你了解一些Java反射的学习记录

    java反射机制是一个很好用的东西,用它可以解决很多死的东西,因为反射机制的灵活行很大,有了他,我们就不要花太多的时间来写操做数据库的代码了,这个可以很大的减少开发时间,而且代码的可读性好
    2021-09-09
  • java高效实现大文件拷贝功能

    java高效实现大文件拷贝功能

    这篇文章主要为大家详细介绍了java高效实现大文件拷贝功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论