zoukankan      html  css  js  c++  java
  • Spring注解驱动开发02(作用域和懒加载)

    Spring中bean的作用域

    默认情况下,Spring只为每个在IOC容器里声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例。该作用域被称为singleton,它是所有bean的默认作用域。
    bean的作用域分类

    在Spring中使用@Scope注解来设置bean的作用域

    • 不设置作用域时,两个getBean的打印结果
    com.atguigu.pojo.Person@76508ed1
    com.atguigu.pojo.Person@76508ed1
    
    • 设置多实例作用域
        @Bean
        @Scope("prototype")  //singleton默认, 改为多实例prototype
        public Person person(){
            return new Person();
        }
    

    打印结果

    com.atguigu.pojo.Person@76508ed1
    com.atguigu.pojo.Person@41e36e46
    

    懒加载@Lazy注解(只适用于单实例bean)

    默认ioc容器启动的时候就创建bean对象

                try (ConfigurableApplicationContext ioc = new AnnotationConfigApplicationContext(MainConfig.class)) {
    //            Person bean = ioc.getBean(Person.class);
    //            Person bean2 = ioc.getBean(Person.class);
    }
    

    打印结果

    创建bean
    

    在bean对象上加上@Lazy懒加载后

        @Bean
        @Lazy
        public Person person(){
            return new Person();
        }
    

    打印结果

          //没有getBean时,无打印
          //getBean
          创建bean
          com.atguigu.pojo.Person@50a638b5
          com.atguigu.pojo.Person@50a638b5
    
    课堂无作为,Code写春秋
  • 相关阅读:
    golang recover
    golang sort
    golang matrix
    golang encoding/json
    go package的理解
    golang beego cache
    git操作
    阿里云图标使用
    Stylus的使用
    vue-preview的使用
  • 原文地址:https://www.cnblogs.com/hea2t/p/13529314.html
Copyright © 2011-2022 走看看