首页 > 其他 > 详细

Bean的作用域

时间:2019-04-24 15:48:36      阅读:122      评论:0      收藏:0      [点我收藏+]

    默认我们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实例

Bean的作用域

原文:https://www.cnblogs.com/figsprite/p/10762646.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!