zoukankan      html  css  js  c++  java
  • Bean的作用域

        默认我们bean的作用域是单例,也就是说每次使用同一个id的对象时,操作的都是同一个对象。

    scope="singleton"

        这是默认情况下的值,因此我们可写可不写,在新的配置文件中新建一个<bean>

    <bean id="car" class="com.figsprite.bean.autowire.Car"
    p:brand="大众" p:price="666" scope="singleton"/>

    接着再Main.java测试一下,

    1. ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-scope.xml");  
    2. Car car = (Car) ctx.getBean("car");  
    3. Car car2 = (Car) ctx.getBean("car");  
    4.     
    5. System.out.println(car==car2);

    发现结果为true,很显然car与car2是指向同一个对象的引用。在整个

    scope="prototype"

        我们修改一下scope的值,发现上述代码输出的是false,每次向容器获取Bean时,都会获得一个新对象。

        我们之前提过,在默认情况下,即使我们不在Main.java里显示书写获取Car对象,Spring就会为我们创建一个实例,在整个容器的生命周期内只会创建这一个bean,如果我们将scope改为prototype,则容器初始化时不会创建bean实例,而是在每次请求时都创建一个新的bean实例

  • 相关阅读:
    Java正则表达式
    Java 字符串处理
    Number 和 Math 类
    Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)
    Android IPC(进程间通信)Binder机制
    Android Service服务源码相关分析
    Android系统修改相关收集
    常用
    JAVA设计模式
    【转载】Reactor模式和NIO
  • 原文地址:https://www.cnblogs.com/figsprite/p/10762646.html
Copyright © 2011-2022 走看看