Bean Scopes
在Spring的官方文档中,定义了6个作用域,分别为:
本篇重点介绍单例和原型。
1.单例模式(Spring默认机制)
共享一个对象
<bean id="user2" class="com.qyh.pojo.User" c:name="王五" c:age="20" scope="singleton"/>
测试
@Test
public void run2(){
ApplicationContext context = new ClassPathXmlApplicationContext("userbeans.xml");
User user1 = context.getBean("user2", User.class);
User user2 = context.getBean("user2", User.class);
System.out.println(user1==user2);
}
结果
2.原型模式
每次从容器中get的时候都会产生一个新的对象
每一个bean都是一个单独对象
<bean id="user2" class="com.qyh.pojo.User" c:name="王五" c:age="20" scope="prototype"/>
测试结果
其余的,request、session、application都是在web中使用的。其作用域与在web中的作用域一致,在这里不做过多赘述。