@Lazy注解用于标识bean是否需要延迟加载,在bean为单实例时,容器启动的时候会创建对象。加上@Lazy后在使用(获取)bean的时候才会创建。
@Lazy对单实例bean适用
如果@Scope(“prototype”)容器启动不会创建对象,在使用(获取)bean的时候才会创建,并且使用(获取)几次就会创建几次。
代码示例

@Configuration
public class ColorConfiguration {@Bean@Scope("prototype")public ColorBean colorBean(){System.out.println("创建ColorBean实例");return new ColorBean();}
}

如果注释到获取bean,ColorBean不会创建,因为ColorBean不是单例。如果直接运行会创建2个ColorBean,证明bean不是单例的话,不需要用@Lazy注解。

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class JuniterTestColor {@Testpublic  void testImportBean(){AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(ColorConfiguration.class);//如果注释到获取bean,ColorBean不会创建,因为ColorBean不是单例。如果直接运行会创建2个ColorBean,证明bean不是单例的话,不需要用@Lazy注解ColorBean object1=(ColorBean)annotationConfigApplicationContext.getBean("colorBean");ColorBean object2=(ColorBean)annotationConfigApplicationContext.getBean("colorBean");}

添加@Lazy注解@Scope使用默认的singleton或不加@Scope

@Configuration
public class ColorConfiguration {@Bean@Lazy@Scopepublic ColorBean colorBean(){System.out.println("创建ColorBean实例");return new ColorBean();}
}

注释掉获取ColorBean,控制台可以看到没有创建ColorBean。不注释掉获取ColorBean,控制台打印:创建ColorBean实例。说明在获取的时候才去创建。起到了懒加载的作用。减少SpringIoc容器启动加载时间。

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class JuniterTestColor {@Testpublic  void testImportBean(){AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(ColorConfiguration.class);/*  ColorBean object1=(ColorBean)annotationConfigApplicationContext.getBean("colorBean");*/}

spring注解@Lazy相关推荐

  1. 【Spring】@Lazy注解

    今天主要从以下几方面来介绍一下@Lazy注解 @Lazy注解是什么 @Lazy注解怎么使用 1.@Lazy注解是什么 @Lazy注解用于标识bean是否需要延迟加载,源码如下: @Target({El ...

  2. java spring框架 注解_史上最全的java spring注解

    史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...

  3. 注解赋值可以是方法_P7笔记,把Spring注解讲的明明白白

    关注公众号领取海量架构师资料 环境搭建 注解的方式是通过配置类的方式来注入组件,注解注入要比XML注入的方式简单,注解注入也需要在前者的基础上,添加一个spring-context的包,也是实际开发中 ...

  4. @async注解_史上最全的java spring注解

    史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...

  5. Spring注解配置工作原理源码解析

    一.背景知识 在[Spring实战]Spring容器初始化完成后执行初始化数据方法一文中说要分析其实现原理,于是就从源码中寻找答案,看源码容易跑偏,因此应当有个主线,或者带着问题.目标去看,这样才能最 ...

  6. 浅谈Spring注解

    Spring目前的趋势是使用注解结合Java代码而不是配置来定义行为.属性.功能.规则和扩展点,因此梳理注解也是梳理Spring功能点的很好的方式,全面的梳理可以补足我们知识点的漏洞. 查找所有注解 ...

  7. 第二章 ---- spring注解开发

    文章目录 参考视频 注解驱动的意义 常用注解(重点) 启动注解驱动 IoC bean定义(@Component .@Controller.@Service. @Repository) @Scope b ...

  8. 设计模式——Spring注解编程模型

    文章目录 1. 引言 2. Spring注解编程模型 2.1 元注解(Meta-Annotations) 2.2 Spring模式注解(Stereotype Annotations) 2.3 Spri ...

  9. Spring注解开发学习笔记

    1 IOC 1.1 工厂模式 使用工厂中方法代替new形式创建对象的一种设计模式 1.2 Inversion of Control控制翻转 一种思想,用于消减代码间的耦合. 实现思想:利用工厂设计模式 ...

  10. spring 注解练习

    创建spring项目: 使用idea,maven创建spring项目: 以上就可以创建好项目,然后导入spring-context的jar包,让项目成为spring项目: https://mvnrep ...

最新文章

  1. Ubuntu Server 命令行下的默认语言 中文乱码
  2. 统一异常处理+错误编码设计方案
  3. 如何在Git中克隆单个分支?
  4. JavaScript知识点总结
  5. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
  6. 计算机课组会议讲话,在计算机部教师会议上的讲话
  7. mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing
  8. 计算机主机部件与外设的工作原理,计算机组成原理名词解释和简答
  9. 大蜘蛛序列号_Datacolor SpyderX 蓝蜘蛛 (红蜘蛛)校色仪 使用教程
  10. IIS 常见异常及解决办法
  11. [电影]十七岁的单车
  12. 医院耗材管理系统开发_4
  13. 利用微软输入法 入侵2003服务器,打开Word或Excel也可被攻击 金山卫士推送微软补丁...
  14. Onvif协议学习:8、设备校时
  15. 西门子与源讯联手打造网络安全技术;全球首个5G全息国际通话打通 | IoT黑板报...
  16. 如何修改mc基岩版服务器端口,我的世界基岩版服务器指令设置家
  17. html给页面整体添加左右边距_css div 网页的页面边距怎么控制
  18. java发送信息到通知栏
  19. JS 判断浏览器客户端类型(ipad,iphone,android)
  20. fnia2Android,FNIA跳杀模拟器

热门文章

  1. python连接oracle报错:DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: “
  2. python TCP服务器v1.4 - 客户端连接服务器异常(异常情况分类)处理
  3. LibreELEC(kodi)安装 IPTV
  4. element ui 前台模板_简单了解Vue + ElementUI后台管理模板
  5. H5py数据集的制作
  6. 用clustalx打序列文件(.fa)失败是为什么?
  7. 小米商城首页仿写+课程总结报告
  8. 医宗金鉴自学指南_自学中医看什么书
  9. 云计算就业指南是什么 该如何做好自我介绍
  10. SQL Server存储过程文本加密与解密过程详解 2019版可用