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实例

  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/figsprite/p/10762646.html
Copyright © 2011-2022 走看看