• 基于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时
      •     <bean id="userService" class="com.example.Service.Impl.UserServiceImpl" scope="singleton">
        
        1. ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
        2. Object userService1 = context.getBean("userService");
        3. Object userService2 = context.getBean("userService");
        4. Object userService3 = context.getBean("userService");
        5. System.out.println(userService1);
        6. System.out.println(userService2);
        7. System.out.println(userService3);
      • 运行结果如下:


        •  

    • scope=prototype时

      •     "userService" name="aaa,bbb" class="com.example.Service.Impl.UserServiceImpl" scope="prototype">
        
        1. ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
        2. Object userService1 = context.getBean("userService");
        3. Object userService2 = context.getBean("userService");
        4. Object userService3 = context.getBean("userService");
        5. System.out.println(userService1);
        6. System.out.println(userService2);
        7. System.out.println(userService3);
      • 运行结果

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

    1. <dependency>
    2. <groupId>org.springframeworkgroupId>
    3. <artifactId>spring-webmvcartifactId>
    4. <version>5.3.7version>
    5. dependency>

     

  • 相关阅读:
    【计算机网络:自顶向下方法】(四)网络层 (IPV4 | IPV6 | 路由算法 )
    【Spring】静态代理
    图库 | 图计算的适用场景有哪些?
    WireShark 常用协议分析
    Ps:图像大小
    mysql实现删除某一列的重复数据(只留一行或全部删除)
    【面试题精讲】Redis如何实现分布式锁
    linux 约束
    Vue---vue3的setup函数的使用
    docker 应用部署
  • 原文地址:https://blog.csdn.net/weixin_64939936/article/details/132949828