`

spring scope="prototype" 学习笔记[转]

 
阅读更多


<bean id="meetAction" class="com.web.actions.MeetsAction"
  scope="prototype">
  <property name="meetsService" ref="meetsService" />
</bean>

<!--
scope="prototype"没写的问题,项目中对一个表的增删该操作是用一个action,这个action有add,update,delete,save这些方法,
添加和修改是共用一个页面,当页面得到id时代表进行的修改操作,反之是添加操作。因为在配置spring的bean是忘了写scope="prototype"
所以每次添加时都显示最后一次访问过的记录,scope="prototype" 会在该类型的对象被请求
时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息
webwork的Action不是线程安全的,要求在多线程环境下必须是一个线程对应一个独立的实例,不能使用singleton。所以,我们在Spring配置Webwork Action Bean时,需要加上属性scope=”prototype”或singleton=”false”。
singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,说白了,如果一个类是singleton的,假如这个类有成员变量,那么这个成员变量的值是各个线程共享的(有点类似于static的样子了),当线程A往给变量赋了一个值以后,线程B就能读出这个值。因此,对于前台Action,肯定不能使用singleton的模式,必须是一个线程请求对应一个独立的实例。推而广之,只要是带数据成员变量的类,为了防止多个线程混用数据,就不能使用singleton。对于我们用到的Service、Dao,之所以用了singleton,就是因为他们没有用到数据成员变量,如果谁的Service需要数据成员变量,请设置singleton=false。
分享到:
评论

相关推荐

    Spring的学习笔记

    以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...

    Spring2.5学习笔记

    ### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...

    SPRING学习笔记2

    5. **Bean的Scope**:Spring提供了多种Bean的作用域,如单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)等,可以根据需求选择合适的Bean作用域。 6. **注解驱动开发**:Spring 2.5引入了...

    spring学习笔记(五)

    【标题】"spring学习笔记(五)"主要涵盖了Spring框架中关于Bean的作用域(Bean Scope)这一核心概念。在Spring框架中,Bean Scope是控制对象生命周期和单例或多例行为的关键。接下来,我们将深入探讨这个主题。 ...

    spring2.5 学习笔记

    【Spring 2.5 学习笔记】 在深入学习Spring 2.5的过程中,我们可以了解到一系列关键的概念和技术。首先,面向抽象编程是Spring的核心理念之一,它鼓励开发者编写可重用且松散耦合的代码,通过接口而非具体实现进行...

    spring学习笔记

    以下是对标题"spring学习笔记"和描述中提到的知识点的详细阐述。 1. Bean的作用域: - **Singleton(单例)**:这是Spring中最常见的Bean作用域,意味着在整个应用中,对于同一个Bean ID,只会有一个实例存在。当...

    Java相关课程系列笔记之十五Spring学习笔记

    本文主要围绕Spring的学习笔记展开,包括Spring的基本概念、容器的应用以及IoC特性进行深入探讨。 ### 一、Spring概述 1. **Spring框架的作用**:Spring的主要作用是提供一个统一的编程模型,通过容器管理对象...

    spring框架案例学习文档笔记.docx

    总的来说,这个Spring框架案例学习文档笔记涵盖了从基础到进阶的多个主题,旨在帮助开发者全面掌握Spring的核心概念和实际应用。通过学习这些内容,读者将能够熟练地使用Spring框架构建可扩展、可维护的企业级应用...

    spring框架案例学习文档笔记.doc

    《Spring框架案例学习文档笔记》 Spring框架是Java开发中广泛应用的一个开源框架,以其依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)为核心,极大地简化了企业...

    Spring - 学习笔记

    `scope`属性可以设置对象的作用域,如单例(singleton)或原型(prototype)。 Spring还支持使用`&lt;property&gt;`标签来进行属性注入,通过`name`属性匹配对象的属性名,并通过`ref`属性引用其他bean来注入依赖。此外,还...

    spring学习笔记.doc

    bean的实例化策略可以通过scope属性来设定,"singleton"表示单例,"prototype"表示每次请求都会创建新的实例。 初始化和销毁方法: 可以使用`init-method`和`destroyed-method`属性指定bean的初始化和销毁方法,...

    spring框架案例学习文档笔记

    ### Spring框架案例学习文档笔记知识点总结 #### 面向抽象编程 - **定义**:面向抽象编程是一种软件设计原则,旨在通过抽象层隔离具体实现细节。这种方式有助于提高代码的可维护性和灵活性。 - **实践**:在Spring...

Global site tag (gtag.js) - Google Analytics