Spring中设置bean作用域
本文内容纲要:Spring中设置bean作用域
在Spring中,bean对象可以有多种作用域
singletion 默认的,每个IOC容器只创建一个Bean实例
prototype每次请求创建一个Bean实例
request每次http请求创建一个实例
session每次会话创建一个实例
globalsession每个全局Http请求创建一个实例
如下:
package com.wfb.beans;
import java.util.ArrayList;
import java.util.List;
public class ShoppingCart {
private List
public void addItem(Product p){
items.add(p);
}
public List
return items;
}
}
上面的类代表了购物车:
xml中配置如下:
下面的过程代表了购物车的使用:
Product aaa=(Product) context.getBean("bbb");
Product cdrw=(Product) context.getBean("cdrw");
ShoppingCart sc1=(ShoppingCart) context.getBean("shopCart");
sc1.addItem(aaa);
sc1.addItem(cdrw);
System.out.println(sc1.getItems());
ShoppingCart sc2=(ShoppingCart) context.getBean("shopCart");
Product dvdrw=(Product) context.getBean("dvdrw");
sc2.addItem(dvdrw);
System.out.println(sc2.getItems());
程序运行结果如下:
[com.wfb.beans.Battery@de1b8a, com.wfb.beans.Disc@1e232b5]
[com.wfb.beans.Battery@de1b8a, com.wfb.beans.Disc@1e232b5, com.wfb.beans.Disc@16f144c]
可以看出创建的两个购物车是同一个购物车,这是因为Spring默认的singleton格式,在配置中改为ie:
程序运行结果如下:
[com.wfb.beans.Battery@16f144c, com.wfb.beans.Disc@19da4fc]
[com.wfb.beans.Disc@baa466]
两次产生的是不同的购物车对象
本文内容总结:Spring中设置bean作用域
原文链接:https://www.cnblogs.com/macula7/archive/2010/05/08/1960444.html
以上是 Spring中设置bean作用域 的全部内容, 来源链接: utcz.com/z/362392.html