美文网首页
spring常用注解-@lazy

spring常用注解-@lazy

作者: 懒癌晚期的自律 | 来源:发表于2019-09-27 14:58 被阅读0次

    Spring会在应用程序上下文的启动时创建所有单例bean。这背后的原因很简单:立即避免和检测所有可能的错误,而不是在运行时。
    但是,有些情况下我们需要创建一个bean,而不是在应用程序上下文启动时,而是在我们请求时。
    在这个快速教程中,我们将讨论Spring的@Lazy注释

    实体类

    public class Dog {
        public  Dog(){
            System.out.println("容器加载Dog完成");
        }
    }
    
    

    配置类

    @Configuration
    public class MainConfig {
    
        @Bean
        @Lazy
        public Dog dog(){
            return new Dog();
        }
    }
    

    测试类

    public class ConfigurationTest {
    
        public static void main(String[] args) {
            ApplicationContext anno = new AnnotationConfigApplicationContext(MainConfig.class);
            System.out.println("容器加载完成");
            Dog dog  = (Dog) anno.getBean("dog");
        }
    }
    
    image.png

    这里可以看到日志,容器加载完成后,并没有答应Dog类中的日志,当获取打这个类的时候,日志才打印了"容器加载了Dog完成"的日志。

    相关文章

      网友评论

          本文标题:spring常用注解-@lazy

          本文链接:https://www.haomeiwen.com/subject/psneectx.html