spring配置(bean的scope属性)
scope属性
1.singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例。
2.prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的。因为每个请求访问Action都会创建一个Action对象
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name="user" class="cn.itcast.bean.User" scope="singleton"></bean>
</beans>
User.java
public class User {
private String name;
private Integer age;
public User() {
System.out.println("user构造");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
Demo.java
@Test
public void func() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
User user1 = (User) ac.getBean("user");
User user2 = (User) ac.getBean("user");
User user3 = (User) ac.getBean("user");
System.out.println(user1==user3);
}
效果:(控制台)
将scope改为prototype
<bean name="user" class="cn.itcast.bean.User" scope="prototype"></bean>
效果:(控制台)
还没有评论,来说两句吧...