spring配置(bean的scope属性)

野性酷女 2022-04-23 06:18 366阅读 0赞

scope属性

1.singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例。

2.prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的。因为每个请求访问Action都会创建一个Action对象

applicationContext.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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 ">
  3. <bean name="user" class="cn.itcast.bean.User" scope="singleton"></bean>
  4. </beans>

User.java

  1. public class User {
  2. private String name;
  3. private Integer age;
  4. public User() {
  5. System.out.println("user构造");
  6. }
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public Integer getAge() {
  14. return age;
  15. }
  16. public void setAge(Integer age) {
  17. this.age = age;
  18. }
  19. }

Demo.java

  1. @Test
  2. public void func() {
  3. ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  4. User user1 = (User) ac.getBean("user");
  5. User user2 = (User) ac.getBean("user");
  6. User user3 = (User) ac.getBean("user");
  7. System.out.println(user1==user3);
  8. }

效果:(控制台)

20190124154014200.png

将scope改为prototype

  1. <bean name="user" class="cn.itcast.bean.User" scope="prototype"></bean>

效果:(控制台)

20190124154200256.png

发表评论

表情:
评论列表 (有 0 条评论,366人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Springscope属性

    摘自《Spring 解密》 scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该

    相关 Spring如何配置bean属性

    在Spring的bean配置文件中,每个bean必须有一个唯一标识的名称或者id,以及一个完全限定的类名,用来让Ioc容器对其进行实例化。 例如有一个简单的Bean: