1、singleton(默认值):单列对象,被标识为单例的对象在spring容器中只会存在一个实例
测试如下:
我们创建一个User类:
public class User {
private String name;
private int age;
public User() {
System.out.println("无参构造方法");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在spring配置文件里配置:
<bean name="user" class="cn.it.bean.User" scope="singleton"></bean>
写个测试方法:
@Test
public void fun4() {
//每次容器启动就会创建容器中所配置的所有对象
ApplicationContext as = new ClassPathXmlApplicationContext("cn/it/create/applicationContext.xml");
User user1 = (User) as.getBean("user");
User user2 = (User) as.getBean("user");
System.out.println(user1==user2);
}
结果如下:
2、prototype:多例原型,被标识为多利的对象,每次在获得才会创建
将上面的配置文件中的scope属性改为prototype,在运行结果就会输出false
3、还有两个request、session,由于在实际开发中基本遇不到我就不介绍了