spring应用手册-IOC(注解实现)-(13)-@Lazy注解

    科技2023-12-21  133

    戴着假发的程序员出品 抖音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 {
    Processed: 0.023, SQL: 8