戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
@Lazy注解
spring应用手册(第二部分)
@Lazy注解,是用来配置bean是否延迟加载,默认是true,但是配置了才生效,不配置就不生效。
@Lazy源码:
package org.springframework.context.annotation;
@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD})
@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@java.lang.annotation.Documented
public @interface Lazy {
boolean value() default true;
}
@Lazy可以注解在某个交给spring管理的类上方,也可以注解在@Bean注解的方法上方。作用和配置文件中bean标签的lazy-init属性一致。 主要用于表示这bean是否要延迟实例化。 默认值是true。所以我们一旦配置了@Lazy,那么这个Bean就会延迟加载。 如果不希望延迟加载就可以不配置或者配置之后,将属性value修改为false。
@Bean
@Lazy(false)
public UserService userService(){
return new UserService();
}
@Component
@Lazy
public class AuthorDAO implements IAutorDAO {}