Spring注解之@Lazy注解

Posted 山高我为峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring注解之@Lazy注解相关的知识,希望对你有一定的参考价值。

@Lazy用于指定该Bean是否取消预初始化。主要用于修饰Spring Bean类,用于指定该Bean的预初始化行为,

使用该Annotation时可以指定一个boolean型的value属性,该属性决定是否要预初始化该Bean

  • lazy代表延时加载,lazy=false,代表不延时,如果对象A中还有对象B的引用,会在A的xml映射文件中配置b的对象引用,多对一或一对多,不延时代表查询出对象A的时候,会把B对象也查询出来放到A对象的引用中,A对象中的B对象是有值的。
  • lazy=true代表延时,查询A对象时,不会把B对象也查询出来,只会在用到A对象中B对象时才会去查询,默认好像是false,你可以看看后台的sql语句的变化就明白了,一般需要优化效率的时候会用到
@Lazy(true)
@Component
public class Chinese implements Person{
   //codes here
}

@DependsOn用于强制初始化其他Bean。可以修饰Bean类或方法,使用该Annotation时可以指定一个字符串数组作为参数,每个数组元素对应于一个强制初始化的Bean

@DependsOn({"steelAxe","abc"})
@Component
public class Chinese implements Person{
   //codes here
}

参考:

  1. https://www.cnblogs.com/ClassNotFoundException/p/6928205.html
  2. https://zhidao.baidu.com/question/359557916.html

以上是关于Spring注解之@Lazy注解的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码之 @lazy注解

coding++:spring注解@lazy,bean懒加载

@lazy注解处理循环注入问题

Spring Boot

Springboot注解 - @Lazy和@Scope

SpringBoot中的Bean懒加载————@Lazy