Spring中的@Lazy注解用法实例
更新时间:2023年08月12日 08:51:48 作者:大树下躲雨
这篇文章主要介绍了Spring中的@Lazy注解用法实例,在Spring中常用于单实例Bean对象的创建和使用,单实例Bean懒加载容器启动后不创建对象,而是在第一次获取Bean创建对象时,初始化,需要的朋友可以参考下
一、@Lazy注解
1、@Lazy注解作用
lazy 翻译过来是"懒惰的"
@Lazy(懒加载):该注解用于惰性加载初始化标注的类、方法和参数。
在Spring中常用于单实例Bean对象的创建和使用;
单实例Bean懒加载:容器启动后不创建对象,而是在第一次获取Bean创建对象时,初始化。
2、@Lazy
可标注在类、方法、构造方法、参数、字段上
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Lazy { /** * Whether lazy initialization should occur. */ boolean value() default true; }
二、@Lazy案例
1、项目结构
2、Persion
package com.dashu.bean; public class Persion { public Persion(String name, int age) { this.name = name; this.age = age; } private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Persion{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
3、Bean注册配置类
package com.dashu.config; import com.dashu.bean.Persion; import org.springframework.context.annotation.*; /** * @Configuration 注解:告诉Spring这是一个配置类 * * 配置类 == 配置文件(beans.xml文件) * */ @Configuration public class BeanConfig { @Lazy @Bean public Persion persion(){ System.out.println("初始化Persion..."); return new Persion("张三",20); } }
4、测试类
package com.dashu; import com.dashu.bean.Persion; import com.dashu.config.BeanConfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(BeanConfig.class); /** * 只在第一次获取Bean时,初始化。之后的获取都是同一个对象 */ Persion persion1 = (Persion) annotationConfigApplicationContext.getBean("persion"); Persion persion2 = annotationConfigApplicationContext.getBean(Persion.class); System.out.println(persion1 == persion2); } }
5、测试结果
到此这篇关于Spring中的@Lazy注解用法实例的文章就介绍到这了,更多相关Spring的@Lazy内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java中File、Base64、MultipartFile之间相互转换的代码详解
File、Base64和MultipartFile都是在编程中常用的类或者数据类型,用于处理文件和数据的存储、传输和转换等操作,本文将给大家介绍了Java中File、Base64、MultipartFile之间相互转换,文中有详细的代码示例供大家参考,需要的朋友可以参考下2024-04-04解决CollectionUtils.isNotEmpty()不存在的问题
这篇文章主要介绍了解决CollectionUtils.isNotEmpty()不存在的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-02-02
最新评论