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

  • 相关阅读:
    Git笔记
    Android笔记
    个人人生警示
    Java 注解
    JAVA面试题
    kotlin学习笔记
    Android Studio之gradle和gradle插件
    gcc在Linux下编译so文件出错 jni.h: no such file or directory
    apktool新官网地址
    Vim 使用记录
  • 原文地址:https://www.cnblogs.com/figsprite/p/10762646.html
Copyright © 2011-2022 走看看