`
Messi光明
  • 浏览: 55953 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

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。

 

2
0
分享到:
评论

相关推荐

    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的核心理念之一,它鼓励开发者编写可重用且松散耦合的代码,通过接口而非具体实现进行...

    spring2.5学习笔记

    ### Spring2.5 学习笔记关键知识点梳理 #### 搭建Spring的运行环境 - **新建项目**: 使用IDE工具如Eclipse或IntelliJ IDEA创建一个新的Java Web项目。 - **Spring配置文件**: 在项目的`src/main/resources`目录下...

    spring学习笔记

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

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

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

    牛人的spring学习笔记,非常适合初学者

    ### 牛人的Spring学习笔记,非常适合初学者 #### 第一课:面向抽象编程 面向抽象编程是一种编程思想,强调在程序设计过程中通过定义抽象层来分离业务逻辑与具体实现细节。这种方式有助于提高软件的可维护性和扩展...

    spring2.5_学习笔记.

    ### Spring2.5 学习笔记知识点概览 #### 第一课:面向抽象编程 - **概念理解**:面向抽象编程是一种设计模式,其核心思想是通过定义接口或抽象类来实现程序结构的设计,使具体实现与接口分离,增强系统的灵活性和...

    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