基于Xml方式的Bean的配置-Bean的作用范围scope配置

SpringBean的配置详解

  • Bean的配置范围
    • 默认情况下(基本的Spring环境),单纯Spring环境Bean的作用范围有两个:Singleton和prototype
    • singleton:单例,默认值,Spring容器创建的时候,就会进行Bean的实例化,并储存到Bean的内部的单例池中,每次getBean时都是从单例池中获取相同的Bean实例
    • prototype:原型,Spring容器初始化时不会创建Bena实例,当调用getBean时才会实例化Bean,每次getBean都会创建一个新的Bean实例
  • 当scope=singleton时
    •     
      
    •         ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
              Object userService1 = context.getBean("userService");
              Object userService2 = context.getBean("userService");
              Object userService3 = context.getBean("userService");
              System.out.println(userService1);
              System.out.println(userService2);
              System.out.println(userService3);
    • 运行结果如下:

      • 基于Xml方式的Bean的配置-Bean的作用范围scope配置_第1张图片
         

  • 当scope=prototype时

    •     
      
    •         ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
              Object userService1 = context.getBean("userService");
              Object userService2 = context.getBean("userService");
              Object userService3 = context.getBean("userService");
              System.out.println(userService1);
              System.out.println(userService2);
              System.out.println(userService3);
    • 运行结果

      • 基于Xml方式的Bean的配置-Bean的作用范围scope配置_第2张图片

PS:如果添加了SpringWebMVC依赖,scope的值就有多个

        
            org.springframework
            spring-webmvc
            5.3.7
        

 基于Xml方式的Bean的配置-Bean的作用范围scope配置_第3张图片

你可能感兴趣的:(Spring,5,xml)