spring注解@Lazy
@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相关推荐
- 【Spring】@Lazy注解
今天主要从以下几方面来介绍一下@Lazy注解 @Lazy注解是什么 @Lazy注解怎么使用 1.@Lazy注解是什么 @Lazy注解用于标识bean是否需要延迟加载,源码如下: @Target({El ...
- java spring框架 注解_史上最全的java spring注解
史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...
- 注解赋值可以是方法_P7笔记,把Spring注解讲的明明白白
关注公众号领取海量架构师资料 环境搭建 注解的方式是通过配置类的方式来注入组件,注解注入要比XML注入的方式简单,注解注入也需要在前者的基础上,添加一个spring-context的包,也是实际开发中 ...
- @async注解_史上最全的java spring注解
史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...
- Spring注解配置工作原理源码解析
一.背景知识 在[Spring实战]Spring容器初始化完成后执行初始化数据方法一文中说要分析其实现原理,于是就从源码中寻找答案,看源码容易跑偏,因此应当有个主线,或者带着问题.目标去看,这样才能最 ...
- 浅谈Spring注解
Spring目前的趋势是使用注解结合Java代码而不是配置来定义行为.属性.功能.规则和扩展点,因此梳理注解也是梳理Spring功能点的很好的方式,全面的梳理可以补足我们知识点的漏洞. 查找所有注解 ...
- 第二章 ---- spring注解开发
文章目录 参考视频 注解驱动的意义 常用注解(重点) 启动注解驱动 IoC bean定义(@Component .@Controller.@Service. @Repository) @Scope b ...
- 设计模式——Spring注解编程模型
文章目录 1. 引言 2. Spring注解编程模型 2.1 元注解(Meta-Annotations) 2.2 Spring模式注解(Stereotype Annotations) 2.3 Spri ...
- Spring注解开发学习笔记
1 IOC 1.1 工厂模式 使用工厂中方法代替new形式创建对象的一种设计模式 1.2 Inversion of Control控制翻转 一种思想,用于消减代码间的耦合. 实现思想:利用工厂设计模式 ...
- spring 注解练习
创建spring项目: 使用idea,maven创建spring项目: 以上就可以创建好项目,然后导入spring-context的jar包,让项目成为spring项目: https://mvnrep ...
最新文章
- Ubuntu Server 命令行下的默认语言 中文乱码
- 统一异常处理+错误编码设计方案
- 如何在Git中克隆单个分支?
- JavaScript知识点总结
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
- 计算机课组会议讲话,在计算机部教师会议上的讲话
- mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing
- 计算机主机部件与外设的工作原理,计算机组成原理名词解释和简答
- 大蜘蛛序列号_Datacolor SpyderX 蓝蜘蛛 (红蜘蛛)校色仪 使用教程
- IIS 常见异常及解决办法
- [电影]十七岁的单车
- 医院耗材管理系统开发_4
- 利用微软输入法 入侵2003服务器,打开Word或Excel也可被攻击 金山卫士推送微软补丁...
- Onvif协议学习:8、设备校时
- 西门子与源讯联手打造网络安全技术;全球首个5G全息国际通话打通 | IoT黑板报...
- 如何修改mc基岩版服务器端口,我的世界基岩版服务器指令设置家
- html给页面整体添加左右边距_css div 网页的页面边距怎么控制
- java发送信息到通知栏
- JS 判断浏览器客户端类型(ipad,iphone,android)
- fnia2Android,FNIA跳杀模拟器
热门文章
- python连接oracle报错:DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: “
- python TCP服务器v1.4 - 客户端连接服务器异常(异常情况分类)处理
- LibreELEC(kodi)安装 IPTV
- element ui 前台模板_简单了解Vue + ElementUI后台管理模板
- H5py数据集的制作
- 用clustalx打序列文件(.fa)失败是为什么?
- 小米商城首页仿写+课程总结报告
- 医宗金鉴自学指南_自学中医看什么书
- 云计算就业指南是什么 该如何做好自我介绍
- SQL Server存储过程文本加密与解密过程详解 2019版可用